不得不说对于新手来说这是一个大坑,项目做好以后,突然发现页面点着点着就卡主点不动了,调试也不报任何错误,顿时懵了,对于一个新手来说脑子里面一片空白,这怎么解决啊?刚开始没发现问题所在,网上各种找办法,找不到对应的处理方法。后面有一次突然发现,返回以后又能点开了,但是紧跟着又点不动了,于是乎脑子里面出来一个想法,是不是微信对打开页面有所限制啊,赶紧网站去查询,果不其然只能打开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
      })
    }

记录一下,方便下次使用~!

评论 (0)

请登录

嘿,我来帮您