背景: 前端项目"异常排查"过程中遇到问题协助解决,特此纪要!
问题: 微信小程序wx.navigateTo页面跳转失败?
问题原因: tabBar的页面即使在app.json中注册用wx.navigateTo也无法跳转,需要使用
wx.switchTab来跳转.
解决办法:
wx.switchTab({
url: '...'
})
wx.navigateTo跳转失败纪要
问题: wx.navigateTo跳转失败?
问题原因: 微信小程序规定子页面最多跳转5层,超过将会导致跳转失败.
wx.navigateTo和wx.switchTab跳转后页面不刷新.
问题原因:...
解决办法:
使用wx.reLaunch解决.
相关的API概要:
(https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html)
1. wx.navigateTo
: 用于保留当前页面,然后跳转到应用内的某个指定页面. 这种方式可以使用
wx.navigateBack返回到原页面. 对于页面不是特别多的小程序,通常推荐使用 wx.navigateTo
进行跳转,这样能返回到原页面提高加载速度. (页面特别多时候不推荐使用)
2. wx.redirectTo
: 用于关闭当前页面,然后跳转到应用内的某个指定页面.这样的跳转可以避免因为跳转过多
占据运行内存的情况.(当跳转页面过多时,没有被关闭的页面会挤占微信默认分配给小程序的内存.)
3. wx.reLaunch
: 用于关闭所有在内存中未关闭的页面,然后跳转到应用内的某个指定页面.
4. wx.switchTab
: 用于跳转到指定的"tab bar"页面.也可以使用wx.reLaunch().
特点: 跳转时会关闭所有非"tab bar"的页面.
(使用其他的API跳转"tab bar"会跳转失败.)
5. wx.navigateBack
: 用于关闭当前页面,返回上一页面或"内存"中指定的页面.(通过getCurrentPages()获取页面栈)