时间:2019-04-29 来源:小程序工厂
没有方法可以去除,但是可以尝试hack一个超栈方法:
可以利用onShow来记录自己维护的一个栈
在超过10层的时候统一用redirectTo,这时真实的栈永远是10层,但是自身维护的栈会不停 + 1,
超栈时,执行navigateback,这时显示的是第9页,这时再执行navigatTo补上你维护的上一页,这样算是“回退”到你的路径上了
这个方法如果不是刚需不推荐用,涉及到对生命周期的装饰和onShow时对页面栈的判断,很复杂,体验上也不算很好,只能说大体上可以解决10层上限的问题
wx.navigateTo 向下跳转增加一层页面栈
wx.redirecTo 向下跳转 关闭当前页面,不会增加页面栈
wx.reLaunch 向下跳转 关闭所有页面,页面栈只有当前页面
wx.switchTab 跳转tabBar 页面 关闭所有非tabbar页面
这些混合用,页面栈并不会到10层
前5个页面用 wx.redirectTo 跳转 后面5个用这个 跳转 wx.navigateTo