法一:
传:changeArea.vue methods: { // 切换其他区域 changeRegion(id, name) { uni.navigateBack() this.eventChannel.emit('acceptId', id, name) }, // 回到进页面时的初始状态 reback() { uni.navigateBack() this.eventChannel.emit('refresh') } }接: // 去切换区域界面 toChangeArea() { if(this.locationFail) return this.checkAuth() uni.navigateTo({ url: '/pages/home/changeArea?currentRegion='+ this.address, events: { //页面间通信接口,用于监听被打开页面发送到当前页面的数据 // 接收从切换区域页面传来的区域值 acceptId: (id, name) => { this.areaId = id this.area = name this.getBusiness(id) }, // 接收触发回到初始定位的信号 refresh: (id) => { this.areaId = 0 this.area = '' this.getBusiness() } } }) },
法二:
传: uni.navigateTo({ url: '/pages/home/order/index', success: (res) => { //接口调用成功的回调函数 // 通过eventChannel向被打开页面传送数据 res.eventChannel.emit('acceptData', { chooseGoods: this.chooseGoods, needTakeCar: this.needTakeCar, business_id: this.currentBusiness.id }) } }) 接: onLoad() { const eventChannel = this.getOpenerEventChannel() eventChannel.on('acceptData', ({chooseGoods, needTakeCar, business_id}) => { this.goodsList = [...chooseGoods] this.businessId = business_id }) }