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