微信小程序eventChannel的使用

  • 当前页跳转下一页是定义事件并监听events里,和被打开页面进行通信,只能在wx.navigateTo中生效
wx.navigateTo({
  url: 'test?id=1',
  events: {
    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
    acceptDataFromOpenedPage: (data) => {
      console.log(data)
    },
    someEvent: (data) => {
      console.log(data)
    }
    ...
  },
  success: (res) => {
    // 通过eventChannel向被打开页面传送数据
    res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
  }
})
  • 被打开页使用时调用
//test.js
Page({
  onLoad(option) {
    console.log(option.query)
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'})
    eventChannel.emit('someEvent', {data: 'test'})
    // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
    eventChannel.once('acceptDataFromOpenerPage', data => {
      console.log(data)
    })
  }
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容