直接不走这个onBackPress,怎么解决?

夏子日记
- 发布:2021-05-10 15:43
- 更新:2024-11-21 20:15
- 阅读:11098


当前页面栈 大于 1 才生效。如第一次就打开 用户中心 页面,然后从 用户中心
redirectTo
跳转到登录页,这时在登录页 的onBackPress
是不会触发的
let pages = getCurrentPages();
console.log( pages.length );// 需大于1
否则不会触直接跳转到首页。确实有点坑坑坑坑坑坑坑!!!!

machi的奶茶 - 披风前行
如果想要在微信小程序里处理返回逻辑
可以通过 onUnload 方法,同样也可以达到效果
onUnload() {
// #ifdef MP-WEIXIN
//监听返回的逻辑
if (this.isEditTemplate) {
this.$refs.alertDialog.open();
}
// #endif
},

**** 暂时解决办法
//user页面 判断 页面栈 然后改变跳转方式
let url = "/pages/login/index";
let len = getCurrentPages().length;
if(len < 2) {
uni.navigateTo({url});//缺点: 如果login页面不是使用uni.navigateBack()返回会导致user页面有多个栈
}else {
uni.redirectTo({url});
}