思路:要跳转路径是否存在于页面栈,存在则使用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
})
}
}