mpvue踩坑之页面间通信

小程序自基础库v2.7.3开始提供了页面间通信的机制,很实用,但是一不小心就会出现问题

小程序 this.getOpenerEventChannel is not a function

废话不说,直接上干货

解决此问题,需要确认几个方面:

1.  检查页面的json文件中的内容,确认没有删除usingComponents,哪怕内容为空,也得留着

{
	"usingComponents": {}
}

2. 检查基础库版本, 最低2.7.3

3. 如果是用的mpvue,则需要修改调用办法, this.$mp.page.getOpenerEventChannel()

demo:

openerPage

toPage2 () {
  mpvue.navigateTo({
    url: '/pages/page2/main',
    events: {
      // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
      dataFromOpenedPage (data) {
        console.log('dataFromOpenedPage', data)
      }
    },
    success: (res) => {
        // 通过eventChannel向被打开页面传送数据
        res.eventChannel.emit('dataFromOpenerPage', this.repeat)
      }
    })
},
// 接收数据的页面
export default {
    data () {
      return {}
    },
    onLoad () {
      console.log('repeat', this)
      const eventChannel = this.$mp.page.getOpenerEventChannel()
      // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
      eventChannel.on('dataFromOpenerPage', (data) => {
        console.log('dataFromOpenerPage', data)
      })
      
      eventChannel.emit('dataFromOpenedPage', {data: 'i'am response'});
    }
  }

 

齐活儿!!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值