收藏
回答

getCurrentPages().pop().route 算是修改页面栈吗

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug getCurrentPages 工具 6.7.1 2.0.0

getCurrentPages()

getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

Tip:不要尝试修改页面栈,会导致路由以及页面状态错误。



文档说不要尝试修改页面栈,我获取当前路由 使用 getCurrentPages().pop().route  选修改吗

回答关注问题邀请回答
收藏

4 个回答

  • 李辉
    李辉
    2018-07-25

    不知道为什么,pop的时候只是取出来的最后的元素,并没有把数据移除掉。亲测是这样的。在小程序里面对于数组的pop会把数据移除掉。很奇怪的一个设定。

    2018-07-25
    有用 1
    回复 1
    • 城主
      城主
      2018-07-25

      注意getCurrentPages后面的括号,因为有了括号页面栈才不至于被修改。

      2018-07-25
      回复
  • wang_halu
    wang_halu
    06-01
    我在首页,切换tabbar时,调用了这个getCurrentPages(),但获取的页面还是首页,不是当前页,这是怎么回事啊?
    要跳转到mine页面,
     wx.switchTab({
            url: url,
            success(res) {
              console.log('switchTab===',getCurrentPages());
              if(count == 4) {
                var page = getCurrentPages().pop();
                console.log('switchTab',page);
                if (page == undefined || page == nullreturn;
                page.onLoad(); 
              }
            }
          })
    
    调用page.onLoad()把原来的index页面也给刷新了一下。
    


    06-01
    有用
    回复
  • 鹏波
    鹏波
    2021-01-15

    同样代码没有复现

    2021-01-15
    有用
    回复
  • 城主
    城主
    2018-07-24

    今天刚刚看到这段代码也迟疑了一下,但是看到腾讯自己的sdk里面也是这样写的,猜测应该返回的是页面栈的copy,所以不影响,不然为什么要通过getCurrentPages() 调用来获取呢。

    2018-07-24
    有用
    回复
登录 后发表内容