wx.navigateTo,为什么目前页面路径最多只能十层?
发布于 6 年前 作者 jingfan 3089 次浏览 来自 问答

wx.navigateTo,为什么目前页面路径最多只能十层?是基于什么考虑的呢?

2 回复

如果一个小程序真的那么深的话,可以考虑是设计出问题了,如果是代码造成的,可以考虑是不是页面是重复的,可以在每个page里加个type: 'pageName'属性,用下面这个工具函数判断。

function jumpTo(options) {
  var url = options.url || "";
  var to = (url.match(/.+\/(\w+)/i) || ['index', 'index'])[1];
  var pages = getCurrentPages();
  var i = 0;
  while (pages[i] && pages[i].type !== to) {
    i++;
  }
  //已有页面在栈里,返回
  if (i < pages.length - 2 && to !== "albumDetail") {
    var delta = 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内存任意挥霍么

回到顶部