思路:要跳转路径是否存在于页面栈,存在则使用navigateBack回退到跳转路径。相当于手动修改页面栈,删除掉跳转路径后的所有页面栈。
//编写方法
goPage(url:跳转页面路径){
const indexUrl='页面路径',
const delta=-1, //回退步数
var pages=getCurrentPages(); //获取所有的页面路径
//判断页面栈是否大于2层,并且跳转路径与自定义路径相同
if(pages.length>2 && indexUrl==url){
for(var i=0;i<pages.length;i++){
//跳转路径存在于页面栈中
if(url == pages[i].route){
//计算要回退的层级
delta = pages.length - i - 1;
break;
}
}
},
if(delta == -1){ //跳转路径不存在于页面栈
wx.navigateTo({url:url})
}else{
wx.navigateBack({
delta:delta
})
}
}
该博客探讨了在页面栈管理中如何判断并执行回退操作。通过检查页面栈,当跳转路径存在于栈中时,使用`navigateBack`方法按需回退指定层数;若路径不存在,则调用`navigateTo`进行页面跳转。这种方法允许自定义页面回退行为,确保用户导航体验的一致性。

1367

被折叠的 条评论
为什么被折叠?



