小程序自基础库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");
})
}