收藏
回答

事件监听代码报错

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.navigateTo 工具 7.0.5 2.7.7

一个页面通过点击到达下一个页面:

toEditUserInfo(e){
    var that = this
    wx.navigateTo({
      url: 'editUserInfo/editUserInfo',
      success:res=>{
        res.eventChannel.emit('acceptDataFromOpenerPage',that.data.userInfoInDB)
      }
    })

下一个页面接收上个页面的数据:

onLoad () {
    const eventChannel = this.getOpenerEventChannel();
    // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
    eventChannel.on('acceptDataFromOpenerPage', function (data) {
      console.log(data)
    })
  },

可以代码报错:


为什么他没有认为他是函数?

最后一次编辑于  07-22  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

17 个回答

  • 最後的我們
    最後的我們
    07-24

    试试在json文件中加个"usingComponents": {} ,我一开始是可以用的,后来把这个去掉就报这个错误,然后我加上就又不报错了。。。

    07-24
    赞同 11
    回复 5
    • 宠与崇
      宠与崇
      07-24
      果然是这样的!谢谢你拉~
      07-24
      赞同
      回复
    • 最後的我們
      最後的我們
      07-24
      不客气 O(∩_∩)O~
      07-24
      赞同
      回复
    • 赤耳乔
      赤耳乔
      08-06回复宠与崇
      请问,为什么我加上还是不行呢
      08-06
      赞同
      回复
    • 飘
      08-07
      我的加上也不行
      08-07
      赞同
      回复
    • 最後的我們
      最後的我們
      08-16回复
      在你报错的页面json文件里加。
      08-16
      赞同
      回复
  • 仙ღ₅₂₀¹³¹⁴
    仙ღ₅₂₀¹³¹⁴
    07-22

    一般这种情况是你 this的指向 问题。你打印下this。还有你这个不是原生的吧,是框架版么?

    07-22
    赞同
    回复 7
    • 宠与崇
      宠与崇
      07-23

      这个this有什么问题吗,主要是其他地方这个事件监听都可以使用,唯独这个不行

      07-23
      赞同
      回复
    • 仙ღ₅₂₀¹³¹⁴
      仙ღ₅₂₀¹³¹⁴
      07-23回复宠与崇
      打印出来的this下 没有getOpener这个方法吖
      07-23
      赞同
      回复
    • 仙ღ₅₂₀¹³¹⁴
      仙ღ₅₂₀¹³¹⁴
      07-23
      而且传递数据 不是拼接在url后面就好了吗?比如 /pages/test/index?id=1
      07-23
      赞同
      回复
    • 宠与崇
      宠与崇
      07-23回复仙ღ₅₂₀¹³¹⁴
      我知道也有这个方法,但我想的是如果有很多参数就比较麻烦了,我现在就是放在url后面
      07-23
      赞同
      回复
    • 仙ღ₅₂₀¹³¹⁴
      仙ღ₅₂₀¹³¹⁴
      07-23
      很多参数 你可以 JSON.stringify 一个对象,下个页面 解析下就好了
      07-23
      赞同 11
      回复
    查看更多(2)
  • 宠与崇
    宠与崇
    07-22

    是原生的,我先试试

    07-22
    赞同
    回复
  • Shint
    Shint
    07-23

    一般在前面写个  let self = this 用self指向就可以了


    07-23
    赞同
    回复
  • Jeff
    Jeff
    星期一 16:31

    小米8 在微信7.0.3的时候也遇到了。升级到7.0.5时好了。

    星期一 16:31
    赞同
    回复