收藏
回答

管理后报错:getOpenerEventChannel().on is not a function

框架类型 问题类型 操作时间 AppID
小程序 Bug 2020-08-14 wx0d7df67087e92b24

前一个版本在页面间传值时,采用的是将对象缓存在 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
        });
      }
    });
  },


管理后台截图:

最后一次编辑于  2020-08-18
回答关注问题邀请回答
收藏

4 个回答

  • 2014
    2014
    2021-10-29
    TypeError: eventChannel.on is not a function   怎么办
    
    2021-10-29
    有用
    回复
  • 你好,阳光
    你好,阳光
    2021-09-02

    同遇到一样的问题,调试基础库用的是2.19.2

    2021-09-02
    有用
    回复 2
    • 你好,阳光
      你好,阳光
      2021-09-05
      我发现是this.getOpenerEventChannel(...)是个空对象,是我将调试页面作为小程序首页导致它并没有Opener
      2021-09-05
      1
      回复
    • 易烊千玺
      易烊千玺
      2021-12-23回复你好,阳光
      情景模拟 : 用户使用完小程序后未正常退出,下次再进入的时候直接进入了 这个this.getOpenerEventChannel(...) 的页面中,导致的这个异常
      2021-12-23
      回复
  • Yrobot
    Yrobot
    2021-01-20

    同,报错内容为

    this.getOpenerEventChannel(...).emit is not a function
    
    2021-01-20
    有用
    回复 1
    • 无端
      无端
      2022-04-13
      请问你的解决了吗?是怎么解决的呀
      2022-04-13
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-08-18

    你好,管理后台错误截图补充下。

    2020-08-18
    有用
    回复 3
    • 河蟹爸爸爱萝莉
      河蟹爸爸爱萝莉
      2020-08-18
      已补充截图,另外今天提交了一个新版本,用 try-catch 暂时把这个问题隐藏起来了:
      2020-08-18
      回复
    • 骑驴找蚂蚁🐜
      骑驴找蚂蚁🐜
      2021-01-04回复河蟹爸爸爱萝莉
      我线上也是这个错误,还全是andoird的。我本地真机,工具都复现不了。。
      2021-01-04
      回复
    • yuanzhiwei
      yuanzhiwei
      2021-01-15
      调试基础库 2.9.4 也是这个错误, 是什么问题呀?
      2021-01-15
      回复
登录 后发表内容
问题标签