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() //返回上一页 }