扫描小程序码分享
wx.navigateTo,为什么目前页面路径最多只能十层?是基于什么考虑的呢?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
如果一个小程序真的那么深的话,可以考虑是设计出问题了,如果是代码造成的,可以考虑是不是页面是重复的,可以在每个page里加个type: 'pageName'属性,用下面这个工具函数判断。
function
jumpTo(options) {
var
url = options.url ||
""
;
to = (url.match(/.+\/(\w+)/i) || [
'index'
,
])[1];
pages = getCurrentPages();
i = 0;
while
(pages[i] && pages[i].type !== to) {
i++;
}
//已有页面在栈里,返回
if
(i < pages.length - 2 && to !==
"albumDetail"
) {
delta = pages.length - 1 - i;
// console.log('jumpto1')
wx.navigateBack({
delta: delta
});
return
//是当前页,刷新当前页
(i === pages.length - 1) {
// console.log('jumpto2')
wx.redirectTo({
url: url
//如果页面数已经大于上线,怎重定向
(pages.length >= 5) {
// console.log('jumpto3')
// console.log('jumpto4')
wx.navigateTo({
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
以前才5层,8G内存任意挥霍么
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
如果一个小程序真的那么深的话,可以考虑是设计出问题了,如果是代码造成的,可以考虑是不是页面是重复的,可以在每个page里加个type: 'pageName'属性,用下面这个工具函数判断。
functionjumpTo(options) {varurl = options.url ||"";varto = (url.match(/.+\/(\w+)/i) || ['index','index'])[1];varpages = getCurrentPages();vari = 0;while(pages[i] && pages[i].type !== to) {i++;}//已有页面在栈里,返回if(i < pages.length - 2 && to !=="albumDetail") {vardelta = pages.length - 1 - i;// console.log('jumpto1')wx.navigateBack({delta: delta});return;}//是当前页,刷新当前页if(i === pages.length - 1) {// console.log('jumpto2')wx.redirectTo({url: url});return;}//如果页面数已经大于上线,怎重定向if(pages.length >= 5) {// console.log('jumpto3')wx.redirectTo({url: url});return;}// console.log('jumpto4')wx.navigateTo({url: url});}以前才5层,8G内存任意挥霍么