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