多页面传值(多对一)
理解: 多页面传值(多对一)可以理解为多个子页面向一个父页面传值
思路:首先在父页面定义一个对象或者数组,其次子页面通过getCurrentPages()方法获取父页面定义的数组或者对象,然后将子页面需要传递的数据赋值给父页面的数组或者对象,最后利用uni-app的onShow()方法实时更新父页面的数据即可。
代码:
父页面定义data对象
data:{
data1:{},
data2:{},
data3:[]
}
子页面利用getCurrentPages()方法获取父页面的data对象并赋值
//子页面1
var pages = getCurrentPages();
var beforePage = pages[pages.length - 2];
if (beforePage != undefined) {
beforePage.data.datda1 = this.data1; //将子页面的data1赋值给父页面的data.data1
}
子页面跳转回父页面,父页面调用onshow()方法,更新data
onShow(){
if(Obejct.keys(this.data.data1).length != 0){
console.log(this.data.data1) //查看是否被子页面1赋值
//继续操作。。。
}
}
注意
app端在子页面给父页面数据赋值时,需要加上$vm
例如:
if (beforePage != undefined) {
beforePage.$vm.data.datda1 = this.data1; //将子页面的data1赋值给父页面的data.data1
}