小程序跳转问题
wx.navigateBack
小程序返回上一页或者多级页面。可以使用
getCurrentPages()
获取当前的页面栈,决定需要返回几层。
1 | wx.navigateBack({ |
wx.navigateTo()
可以传参
wx.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面
跳转的页面会自带返回按钮
1 | wx.navigateTo({ |
wx.reLaunch()
可以传递参数
关闭所有页面,打开到应用内的某个页面
跳转的页面不会有返回按钮
wx.switchTab()
不能带参数
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
跳转的页面不会有返回按钮
wx.redirectTo()
可以传递参数
关闭当前页面,跳转到应用内的某个页面。
1 | wx.redirectTo({ |
案例问题?
页面A-【navigateTo】 -> login页面-【navigateTo】 -> 页面C(该页面需要登录,所以在A跳转的时候判断是否登录,如未登录跳转到登录页面)
开始时跳转都用的是 navigateTo, 在页面C中点击返回时,返回到了登录页,这显然是错误的,一直在想如何从C页面直接跳回A页面….
解决方法: 在login页面使用 wx.redirectTo
预期效果:A -> login -> C 然后 C直接返回A
A -> login 通过 wx.navigateTo
跳转
login -> C 通过 wx.redirectTo
跳转.跳转触发后 login 页面就会被销毁, C 页面再返回 wx.navigateBack
就会直接到 A 了