我试了也没用,怎么没有官方出来回答一下这个问题
微信官方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) 这一行 ??? 难道是我姿势不对吗
2020-03-22