1***@qq.com
1***@qq.com
  • 发布:2023-04-21 15:54
  • 更新:2024-07-23 11:32
  • 阅读:3253

uni-app getcurrentpages()的坑

分类:uni-app

在微信小程序开发的时候用到getCurrentPages(),获取打开页面栈实例,返回的是一个是一个先进后出的栈结构,
let pages = getCurrentPages()
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
wx.navigateBack({delta: count})
}
})

但是在uni-app中在开发APP的时候,getCurrentPages()返回的是一个先进先出的队列结构,
let pages = getCurrentPages().reverse();
为什么要reverse()一下,如果你要用uni.navigateBack({delta: count}),这将会是一个坑count是统计你要返回的页面数量,如果不调用reverse()你会从队列的头开始遍历,但是count要从底部返回累计,所以getCurrentPages().reverse(); 后才能把原先的队列结构反过来,我们在进行遍历才能得到一个正确的顺序
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
uni.navigateBack({delta: count})
}
})

0 关注 分享

要回复文章请先登录注册

DCloud_UNI_GSQ

DCloud_UNI_GSQ

楼主说的app是vue2还是vue3?
2024-04-08 09:54
1***@qq.com

1***@qq.com

我在app开发的时候直接报错getCurrentPages is not a function
而h5、小程序都是好的
2024-04-08 02:35