微信小程序偶尔出现打不开新页面

开发中的一个微信小程序偶尔会出现打不开新页面的情况,而且奇怪的是问题有时候在场景A出现,有时候在场景B出现。但一个规律是:都是在频繁操作切换页面之后产生的。

最后发现这个问题是由于路由API的限制导致的:

wx.navigateTo(Object object)

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。

最后一句最为重要,当频繁操作切换页面时如果页面栈超过10层,就会导致页面跳转失败。

解决办法之一是使用另一个API替代:

wx.redirectTo(Object object)

关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。

wx.navigateTo与wx.redirectTo的区别是navigateTo保留页面在页面栈中并跳转,而redirectTo是关闭当前页面跳转。

扫码关注我的公众号