小程序
小游戏
企业微信
微信支付
扫描小程序码分享
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'属性,用下面这个工具函数判断。
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内存任意挥霍么