小程序监听某个页面返回

小程序监听某个页面返回,第1张

小程序页面返回的话会销毁当前页面实例,所以要实现监听的话可以在当前页面将要卸载时的生命周期里实现相关逻辑。

最近项目遇到这么一种情况,要求用户 *** 作多个页面,最后提交跳转到一个成功页面,这时一般是用relaunchTo(关闭所有页面,打开到应用内的某个页面),但是项目本身只有一个tab页面,这时如果用relaunchTo进行跳转就会连小程序首页都销毁掉,这时就要在提交成功页面进行相关处理了。

此时用户在这个页面可能点击查看提交详情,也可能直接返回,这时可以通过一个变量判断,如果用户点击了“查看详情”,就将变量设置为false,在当前页的将要卸载页面的生命周期通过该变量判断是否进行处理,同时用户点击了“查看详情”的话,可以在路由携带一个参数告诉跳转的目标页进行相关处理。例如我这边是告诉目标页用户返回的话,需要卸载多个页面,在Taro的生命周期可以做如下设置:

wx.switchTab:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

wx.reLaunch:关闭所有页面,打开到应用内的某个页面。

wx.reLaunch是可以跳转到tabBar页面的。它和wx.switchTab的区别就是:前者可以触发onLoad事件,而后者则不能触发。所以通过wx.reLaunch跳转到tabBar的方式完美解决了不能刷新的问题。

在小程序项目中 我发现 wx.switchTab 跳转是触发onLoad事件  但是只会触发一次 如果我通过退出登录 是不会再次触发onLoad事件 的 而wx.reLaunch是可以跳转到tabBar页面的 再次触发onLoad事件

微信小程序跳转的API

1、wx.navigateTo(obj)保留当前页面,跳转到应用内的某个页面

wx.navigateTo({ url: 'test?id=1' })

2、wx.redirectTo(OBJECT)关闭当前页面,跳转到应用内的某个页面。

wx.redirectTo({ url: 'test?id=1' })

3、wx.navigateBack(OBJECT)关闭当前页面,返回上一页面或多级页面

wx.navigateBack({ delta: 2 })

4、wx.switchTab(OBJECT)跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

wx.switchTab({ url: '/index' })

5、wx.reLaunch(OBJECT)关闭所有页面,打开到应用内的某个页面。

wx.reLaunch({ url: 'test?id=1' })


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7855480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存