uniapp自定义头部导航栏后,页面刷新前能用getCurrentPages()获取路由栈的数组,但是刷新之后路由栈丢失了,getCurrentPages()返回undefined,而且uni.navigateBack()无法返回上一个界面,指定delta也返回不了,但是可以点击浏览器顶部导航栏的返回按钮返回,想让页面刷新也能获取到路由栈:
在此记录一下,方便以后查阅;
问题:自定义头部导航栏,H5端页面刷新之后页面栈会消失,此时navigateBack不能返回,如果一定要返回可以使用history.back()导航到浏览器的其他历史记录。
解决:
goBack() {
let canNavBack = getCurrentPages(); //获取路由栈
if(canNavBack && canNavBack.length>1) { //判断是否刷新了浏览器,如果刷新了浏览器,路由栈只有当前一个
uni.navigateBack({
delta: 1
});
} else {
history.back();
}
}
注意:这个是用于H5的,发布到多端使用可能会用到官方的条件编译:(uniapp.dcloud.io/platform?id…)