小程序页面返回的话会销毁当前页面实例,所以要实现监听的话可以在当前页面将要卸载时的生命周期里实现相关逻辑。
最近项目遇到这么一种情况,要求用户操作多个页面,最后提交跳转到一个成功页面,这时一般是用relaunchTo(关闭所有页面,打开到应用内的某个页面),但是项目本身只有一个tab页面,这时如果用relaunchTo进行跳转就会连小程序首页都销毁掉,这时就要在提交成功页面进行相关处理了。

此时用户在这个页面可能点击查看提交详情,也可能直接返回,这时可以通过一个变量判断,如果用户点击了“查看详情”,就将变量设置为false,在当前页的将要卸载页面的生命周期通过该变量判断是否进行处理,同时用户点击了“查看详情”的话,可以在路由携带一个参数告诉跳转的目标页进行相关处理。例如我这边是告诉目标页用户返回的话,需要卸载多个页面,在Taro的生命周期可以做如下设置:
componentWillUnmount () {
const { pageFrom } = this.$router.params
if (pageFrom === 'insurance') {
// 如果是保险订单提交成功进来这里,返回时需关闭前面几个逻辑页面
Taro.navigateBack({
delta: 3
})
}
}
网友评论