一、uni.navigateBack的传参方式
从页面B返回,A页接收数据
//页面B
onSubmit(){
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.$vm.reBackData("参数");
uni.navigateBack({
delta: 1
})
}
//页面A -- 接收参数
reBackData(val){
console.log(val);// 参数
},
二、返回页面栈中指定的页面
removeDuplicatePages(pageUrl) {
var pages = getCurrentPages();
// console.log("pages", pages)
var prevPage1 = pages[pages.length - 2];
// console.log('prevPage1', prevPage1, pages.length - 2)
const pageUrlIdx = pages.findIndex(page => page.route === pageUrl);
if (pageUrlIdx > -1 && pages.length > pageUrlIdx + 1) {
var backSteps = pages.length - 1 - pageUrlIdx;
var prevPage = pages[pageUrlIdx];
prevPage.$vm.reBackData("参数");
// console.log("prevPage", prevPage)
// console.log("pageUrlIdx", pageUrlIdx, "backSteps", backSteps)
uni.navigateBack({
delta: backSteps
});
}
},
三、uniapp 监听页面返回
export default {
onLoad() {}, // 页面加载时触发
onBackPress(options) {
console.log('页面返回');
if (options && options.from === 'navigateBack') {
console.log('从上一个页面返回');
// 这里可以编写处理返回事件的相应逻辑
} else {
console.log('直接按手机物理返回键返回');
// 这里可以编写处理返回事件的相应逻辑
}
},
}