微信官方API中的 eventChannel.once如何使用?
父页面代码
wx.navigateTo({
url: computeUrl,
events: {
Basicrepair: function (data) {
console.log(data)
}
},
success: function (res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('Basicrepair', {
data: e.currentTarget.dataset.a
})
},
fail: function (res) {
console.log(res)
}
})
子页面
onLoad: function (options) {
// 获取页面传参
const eventChannel = this.getOpenerEventChannel()
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
eventChannel.once('Basicrepair', Data => {
console.log(Data)
this.data.componentData = {
title: Data.data.title,
code: Data.data.code
}
this.setData({
basicData: Data.data,
componentData: this.data.componentData
})
})
this.getDetail()
},
如图上两行代码,这个是一个跳转页面调用 eventChannel实现传递参数的功能
问题是,在子页面的 eventChannel.once ,我在开发者工具下,没法执行到 console.log(data) 这一行,给我感觉更像是没监听到 “Basicrepair” 这个事件
有趣的来了,如果子页面的 eventChannel.once 换成 eventChannel.on 可以执行到 console.log(data) 这一行
???
难道是我姿势不对吗