uniapp页面刷新前能用getCurrentPages()获取路由栈的数组,但是刷新之后路由栈丢失了,getCurrentPages()返回undefined,而且uni.navigateBack()无法返回上一个界面,指定delta也返回不了,但是可以点击顶部导航栏的返回按钮返回,不过也只能返回首页。想让页面刷新也能获取到路由栈(因为无法阻止浏览器被刷新),有哪位大佬能提供一下解决方案吗?
// 这是调用的方法
deleteContact() {
let page = getCurrentPages();
let beforePage = pages[pages.length - 2];//上个页面
if(beforePage && beforePage.route === 'pages/my/mytool/ComuseInfo') {
console.log('刷新前:', beforePage)
beforePage.getList();
} else {
console.log('刷新后:', beforePage)
// uni.navigateBack()
}
},
ielgnod
上面的判断我只在H5做了测试,是ok的,如果发布到多端出现问题的话,可能会用到官网的条件编译:
https://uniapp.dcloud.io/platform?id=%e6%9d%a1%e4%bb%b6%e7%bc%96%e8%af%91
2021-03-31 10:13
紫色风铃
回复 ielgnod: 怎么判断页面是否刷新?
2021-07-14 09:09
2***@qq.com
回复 紫色风铃: let canNavBack = getCurrentPages(); 如果canNavBack等于undefined说明页面被刷新过了
2024-05-30 16:13
紫色风铃
回复 2***@qq.com: 好的,谢谢大佬
2024-06-28 14:20