管理后报错:getOpenerEventChannel().on is not a function
前一个版本在页面间传值时,采用的是将对象缓存在 app.js 中,然后在 onLoad() 中将其获取并设置为 null 的方式;在当前版本中,采用了依赖 EventChannel 进行传值的方式,但是管理后台出现大量报错,错误为 this.getOpenerEventChannel().on is not a function,本地开发工具和真机调试均无法复现该异常。 相关情况如下: 发布新版本时为全量发布;管理后台基本库最低设置为 2.7.3;报错页面无其它跳转进入途径; [图片] 相关代码如下: 第一个页面 toPrescription: function() {
let that = this;
util.checkUserState(-1, true, function (res) {
let acceptData = {
'selectedMember': null
}
if (that.data.members.length > 0 && that.data.members[0].isSelf) {
acceptData.selectedMember = that.data.members[0];
}
wx.navigateTo({
url: '/pages/diagnosis/prescription/prescription',
success: function (res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('toPrescription', { data: acceptData });
}
});
});
},
第二个页面 onLoad: function(options) {
let that = this;
let eventChannel = this.getOpenerEventChannel();
// 监听事件,获取上一页面通过eventChannel传送到当前页面的数据
eventChannel.on('toPrescription', function (data) {
let acceptData = data.data;
if (acceptData && acceptData.selectedMember) {
that.setData({
selectedMember: acceptData.selectedMember
});
}
});
},
管理后台截图: [图片][图片]