前言
今天在开发微信小程序时遇到一个不常见的报错,今天教大家如何一分钟解决下图报错。

问题描述:
当微信小程序中使用了过多的 webview 组件时,会导致报错 “navigateTo:fail webview count limit exceed”。这是因为微信小程序对 webview 组件的数量有限制,超过限制就会报错。具体的限制数量可能会因微信小程序的版本而有所不同。
通过上图的报错信息,我们知道了报错的地方是 navigateTo 跳转,后面的意思翻译过来大概是 “超出了页面次数限制”。
原因分析:
通过查阅微信的官方文档得知,wx.navigateTo 方法在页面栈最多十层。但是由于点击的次数太多了,所以导致在多次跳转以后出现报错。
解决方案:
将
wx.navigateTo替换成wx.redirectTo
wx.redirectTo 的执行行为是:关闭当前所在页面,再跳转到指定的页面。因此不会出现这样的问题。
注意:
使用 wx.redirectTo 跳转会有一个很明显的问题,当点击上面的返回箭头的时候,指向的不是刚刚打开的页面,而是 redirect 直接将当前页面替换成了要跳转的页面,变成页面重定向,重定向的时候是当前页面出栈,新页面入栈 wx.redirectTo 就是指的重定向,所以不能返回上一页。
当微信小程序使用wx.navigateTo导致navigateTo:failwebviewcountlimitexceed错误时,可以改用wx.redirectTo来避免页面栈超过限制。wx.redirectTo会关闭当前页面并跳转,但无法返回到被替换的页面,应注意其导航行为差异。
9656

被折叠的 条评论
为什么被折叠?



