有这样一个需求,A页面跳转到B页面,当B页面返回A页面的时候,A页面的显示依赖于离开B页面时候发送的请求,也就是说A页面的请求要等离开B页面的请求完成后再发送
这就可以用到 taro.navicateTo的 event 属性及 eventChannel,相当于页面之间通信
Talk is cheap,show me the code
A页面代码
Taro.navigateTo({
url: "/pages/test/index",
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function (data) {
console.log(data);
},
someEvent: function (data) {
console.log('--->',data);
},
},
success: function (res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit("acceptDataFromOpenerPage", { data: "test" });
}
B页面代码
const pages = Taro.getCurrentPages()
const current = pages[pages.length - 1]
const eventChannel = current.getOpenerEventChannel()
// 触发A页面的 events 中的 someEvent
eventChannel.emit('someEvent', { queNumber: 'lsk--->' });
// 接收 A页面的 events 中的 acceptDataFromOpenerPage 传递的数据
eventChannel.on('acceptDataFromOpenerPage',(res)=>{
console.log('page_test',res);
})