getCurrentPages()
getCurrentPages()
函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
Tip:不要尝试修改页面栈,会导致路由以及页面状态错误。
文档说不要尝试修改页面栈,我获取当前路由 使用 getCurrentPages().pop().route 选修改吗
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | getCurrentPages | 工具 | 6.7.1 | 2.0.0 |
4 个回答
不知道为什么,pop的时候只是取出来的最后的元素,并没有把数据移除掉。亲测是这样的。在小程序里面对于数组的pop会把数据移除掉。很奇怪的一个设定。
注意getCurrentPages后面的括号,因为有了括号页面栈才不至于被修改。
我在首页,切换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 == null) return; page.onLoad(); } } }) 调用page.onLoad()把原来的index页面也给刷新了一下。
同样代码没有复现
今天刚刚看到这段代码也迟疑了一下,但是看到腾讯自己的sdk里面也是这样写的,猜测应该返回的是页面栈的copy,所以不影响,不然为什么要通过getCurrentPages() 调用来获取呢。