您好!页面栈问题求解答
发布于 6 年前 作者 yli 2301 次浏览 来自 问答

您好!页面栈最多10个  但 如果我有 1 2 3 4 5 6 7 8 9 10 11 个页面, 用

wx.navigateTo

方法实现跳转,到第10页面再想跳到11 页面,提示错误 navigateTo:fail webview count limit exceed 此时 如何跳到11页,还能让用户返回时能看到 10  9 8 7 6 这几个页面  12345 如何从页面栈中去除?

3 回复

没有方法可以去除,但是可以尝试hack一个超栈方法:

  1. 可以利用onShow来记录自己维护的一个栈

  2. 在超过10层的时候统一用redirectTo,这时真实的栈永远是10层,但是自身维护的栈会不停 + 1,

  3. 超栈时,执行navigateback,这时显示的是第9页,这时再执行navigatTo补上你维护的上一页,这样算是“回退”到你的路径上了

这个方法如果不是刚需不推荐用,涉及到对生命周期的装饰和onShow时对页面栈的判断,很复杂,体验上也不算很好,只能说大体上可以解决10层上限的问题

wx.navigateTo  向下跳转增加一层页面栈

wx.redirecTo  向下跳转 关闭当前页面,不会增加页面栈

wx.reLaunch  向下跳转 关闭所有页面,页面栈只有当前页面

wx.switchTab  跳转tabBar 页面 关闭所有非tabbar页面

这些混合用,页面栈并不会到10层

前5个页面用 wx.redirectTo 跳转  后面5个用这个 跳转 wx.navigateTo

回到顶部