uniapp navigateBack返回修改前一页面数据
1. 使用prevPage.$vm
页面A
data() {
return {
content:''
}
}
页面B
把以下代码写在需要修改上一页面的方法里面,若需要一进入B页面就修改A页面的值,把下面代码的uni.navigateBack()去除后,写在onLoad方法里面
let pages = getCurrentPages(); //获取所有页面栈实例列表 let nowPage = pages[ pages.length - 1]; //当前页页面实例 let prevPage = pages[ pages.length - 2 ]; //上一页页面实例 prevPage.$vm.content= name; // 修改上一页data里面的content参数值为name uni.navigateBack()
2. 使用uni.$emit()和uni.$on() 进行页面间通讯
页面A监听值改变,在onShow中添加监听一个handle的事件
onShow(){
uni.$on("handle", res => {
this.content = res.name;
// 清除监听
uni.$off('handle');
})
}
B页面 ,返回A页面触发一个事件,使用uni.$emit("handle",{})
getContent(){
uni.$emit("handle",{name: 'Name Content'}); //值传递
uni.navigateBack() //返回上一页
}