navigateBack(event) {
const pages = getCurrentPages();
//如果页面层级数大于想要返回的层级数
if (pages.length > event) {
uni.navigateBack({
delta: event
})
return;
} else {
//使用vue-router返回上一级
let a = this.$router.go(-1);
//如果已经不能再返回上一级,默认跳转到首页
if (a == undefined) {
//重新定向跳转页面
this.$router.push({
path: "@/pages/index/index"
})
return;
} else {
uni.navigateBack();
}
}
},
注:若真机测试报错,则可用以下方法(可能为uniapp下不能使用¥router的问题)
navigateBack(event) {
const pages = getCurrentPages();
console.log("pages.length:",pages.length);
console.log("event",event)
let x = event.toString();
console.log("x",x)
if (pages.length > event) {
uni.navigateBack({
delta: event
})
return;
} else {
if(pages.length > 1){
uni.navigateBack({
delta: 1
})
}else {
//这边跳转为tabbar页面 若非tabbar页面 则将uni.switchTab改为uni.navigateTo
uni.switchTab({
url: '/pages/index/index'
});
}
}
},
调用:@tap="navigateBack(x) //x为返回第几层 例如写2就是返回2层