一、navigateBack返回时传值
//从主页跳转到头图页
toFacePicture() {
let vm = this; // 保存当前页面的实例对象
uni.navigateTo({
url: '/pages/activities/create-activities/faceImages',
events: {
//自定义一个监听器名, data为选择页面返回的数据
selectFacePicture(data) {
vm.selectedImageIndex = data.picIndex;
console.log("picIndex" + data.picIndex);
console.log("picIndex" + vm.selectedImageIndex);
}
}
})
},
//从头图页返回主页| 返回按钮的点击事件处理
goBackToCreate() {
const eventChannel = this.getOpenerEventChannel();
let urls = this.getSelectedImgUrlList();
var vm = {
picIndex: urls
}
//注意,这里的第一个参数要和主页面的监听器名称一致
//第二个就是要传的数据,我这里是传了一个对象回去
eventChannel.emit('selectFacePicture', vm);
uni.navigateBack();
},
参考文档:
1.https://juejin.cn/post/6844904191605866503
二、navigateTo跳转时传值
从页面A通过uni.navigateTo跳转至页面B(非tab页),将页面A中的数据传递到页面B。
//页面A
let vm = this; // 保存当前页面的实例对象
uni.navigateTo({
url: '/pages/activities/create-activities/faceImages',
events: {
//自定义一个监听器名
originalSelectedData(data){
console.log("originalSelectedData", data)
}
},
//接口调用成功的回调函数
success:function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('originalSelectedData', vm.selectedImageUrls)
}
});
//页面B(数据接收页面)
onShow: function(option) {
// 获取 eventChannel 事件频道
const eventChannel = this.getOpenerEventChannel();
// 监听 originalSelectedData 事件,获取上一页面通过事件频道 eventChannel 传送到当前页面的数据
eventChannel.on('originalSelectedData', (data) => {
console.log("originalSelectedData", data);
if (data !== null) {
this.value = data;
}
});
},