在微信小程序中打开的页面不能超过10个,达到10个页面后,就不能再打开新的页面

这篇具有很好参考价值的文章主要介绍了在微信小程序中打开的页面不能超过10个,达到10个页面后,就不能再打开新的页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序路由跳转有个隐藏的坑,就是 wx.navigateTo打开新页面,最多只能打开10个,超过10个之后就没反应,控制台也不会报错。

 方案一:navigateTo不行,用redirectTo

小程序路由跳转的方式有五种,分别是wx.navigateTo(打开新页面,新页面入栈)、wx.redirectTo(重定向,当前页面出栈,新页面入栈)、wx.navigateBack(返回,页面不断出栈,直到目标返回页)、wx.switchTab(切换tab页面,页面全部出栈,只留下新的 Tab 页面)、wx.reLaunch(页面全部出栈,只留下新的页面)

由此产生了第一种方式,当页面栈超过 10 时,直接用redirectTo。

方案二:维护自己的小程序页面栈

9层(含9层)以内时:走小程序自己的历史栈就ok了,跳转时候更新一下逻辑栈,这没啥可说的
从9层跳转10层:需要把第9层重定向到中转页,再由中转页跳转到10层
10层以后跳转:在navigateTo方法中处理,到10层之后,再跳转就第10层页面一直做redirectTo(重定向)操作了
10层以上返回:会返回到中转页,由中转页判断,具体返回到哪个页面,然后navigateTo(跳转)过去
从10层返回到9层:返回到中转页,将中转页redirectTo(重定向)到第9层页面
9层内的返回:直接返回就好了,返回时候不会更新逻辑栈,但没有关系,因为只有中转页才会用到逻辑栈
逻辑栈更新机制:
跳转、返回中转页时更新
navigateTo时更新
redirectTo时更新
reLaunch时更新
navigateBack时更新

 小思路:失败的坑

本来想打算看看能不能当小程序页面栈超过十个以后就删除页面栈中的第一个,来以此循环,但是失败了文章来源地址https://www.toymoban.com/news/detail-403988.html

到了这里,关于在微信小程序中打开的页面不能超过10个,达到10个页面后,就不能再打开新的页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包