Descripción del problema: Para optimizar el rendimiento, cuando uniapp usa uni.navigateTo para saltar, la pila de páginas se limita a un máximo de 10 capas. Cuando el salto supera las 10 capas, se producirán problemas.
Para este problema, actualmente uso 2 soluciones:
El primer método : cuando todo el proceso no exceda las 10 páginas, regrese a la primera página en la página de resultados y use uni.navigateBack tanto en el evento de clic como en el evento de destrucción de página. El ejemplo es el siguiente:
methods: {
completeBtn(){
uni.navigateBack({
delta: 3
});
}
},
onUnload() {
uni.navigateBack({
delta: 3
});
}
El segundo método
: use el método getCurrentPages() para obtener el número de páginas en la pila. Si es mayor o igual a 10 capas, use el método redirectTo() para saltar. Dado
onLoad(opts){
let pages = getCurrentPages();
// 获取页面栈总页数
this.pagesCount = pages.length;
},
methods:{
pushPage(url){
// 如果页面栈总数大于10
if(this.pagesCount >= 10){
// 使用重定向跳转页面
uni.redirectTo({
url: '/pages/news/index?id=3'
})
}else{
// 如果页面栈总数小于10,则打开新页面
uni.navigateTo({
url: '/pages/news/index?id=3'
})
}
}
}