时间: 2024-01-16 20:36:15 人气: -
不得不说对于新手来说这是一个大坑,项目做好以后,突然发现页面点着点着就卡主点不动了,调试也不报任何错误,顿时懵了,对于一个新手来说脑子里面一片空白,这怎么解决啊?刚开始没发现问题所在,网上各种找办法,找不到对应的处理方法。后面有一次突然发现,返回以后又能点开了,但是紧跟着又点不动了,于是乎脑子里面出来一个想法,是不是微信对打开页面有所限制啊,赶紧网站去查询,果不其然只能打开10页超过就打不开了。这样就好找解决办法了。
网上资料:小程序路由跳转的方式有五种,分别是wx.navigateTo(打开新页面,新页面入栈)、wx.redirectTo(重定向,当前页面出栈,新页面入栈)、wx.navigateBack(返回,页面不断出栈,直到目标返回页)、wx.switchTab(切换tab页面,页面全部出栈,只留下新的 Tab 页面)、wx.reLaunch(页面全部出栈,只留下新的页面)。
找到一个比较适合新手的方法,打开页面等于10页的时候提示关闭一些页面然后返回到上一页,但是会有提示,也感觉不太友好,下面是网上的方法;
let pages = getCurrentPages();
if (pages.length == 10) {
wx.showToast({
title: "页面打开太多,请回退关闭几个页面",
icon: 'none',
duration: 2000
})
setTimeout(() => {
wx.navigateBack({
})
}, 2000)
return;
}
我们用上面的方法结合官方的五中跳转方式,用其中两种方式navigateTo、redirectTo 做一下简单的修改,代码如下:
let pages = getCurrentPages(); //获取当前打开页面栈数
console.log(pages.length); //做一个简单的打印,可有可无
if (pages.length == 10) {
wx.redirectTo({ //当页面栈数等于10的时候用 redirectTo 方法
url: url
})
}else{
wx.navigateTo({ //当页面栈数小于10的时候用 navigateTo方法
url: url
})
}
记录一下,方便下次使用~!