- wx.redirectTo是否支持EventChannel的使用?
因为之前用过 wx.navigateTo ,它支持 success 后返回的参数为eventChannel,我用这个来做了类似 Vue.route.push({param }) 的效果,用来传一些比较复杂的参数(比如对象、数组) 然后 wx.redirectTo 这个API是否支持这样使用呢? 看了一下文档和实际操作中 success 返回的 res 里面只是一个普通的对象 如果支持的话请告知如何实现, 如果无法这样使用的话期望小程序官方可以考虑一下这个看看能不能在后续版本实现 (虽然自己造轮子实现这个功能也不是不行~~
2020-07-28 - 微信官方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) 这一行 ??? 难道是我姿势不对吗
2019-12-23