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

 

posted @ 2021-11-22 13:43  编程民工  阅读(1079)  评论(0编辑  收藏  举报