微信小程序 this.getOpenerEventChannel is not a function

1,922 阅读1分钟

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

废话不说,直接上干货 

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

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

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

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

//传数据的页面A

  wx.navigateTo({

url: `/pages/rectificationProblem/bridgeRectificationPage/main?id=${this.form.id}`,

success: function (res) {

// 通过eventChannel向被打开页面传送数据

res.eventChannel.emit("acceptDataFromOpenerPage", {

minDate: this.minDate,

});

},

});

 // 接收数据的页面B

 onLoad(data) {

this.form.checkId = data.id;

const eventChannel = this.$mp.page.getOpenerEventChannel();

eventChannel.on("acceptDataFromOpenerPage", (res) => {

console.log(res, "res");

})

}