微信小程序页面栈有10层限制。使用wx.navigateTo()或<navigator open-type="navigateTo"/>组件跳转的页面路径最多只有10层。页面路径大于10层后,再使用就跳转不了了。
因此需要合理利用小程序不同跳转方式:
1)wx.navigateTo:保留当前页面,跳转到应用内的某个页面;
2)wx.redirectTo:关闭当前页面,跳转到应用内的某个页面;
3)wx.navigateBack:关闭当前页面,返回上一页面或多级页面;
如:
wx.navigateBack({
delta: 2 //跳转到上上个页面
})
4)wx.switchTab:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面;
5)wx.reLaunch:关闭所有页面,打开到应用内的某个页面;
注意:
navigateTo
,redirectTo
只能打开非 tabBar 页面。switchTab
只能打开 tabBar 页面。reLaunch
可以打开任意页面。
此外,可以使用getCurrentPages()方法去获取页面栈。如:var pages = getCurrentPages();
如下为输出结果,会发现它只能容10层。