收藏
回答

eventChannel.on()内无法调用自己的方法或者this.SetData()

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug eventChannel 微信安卓客户端 6.5.3 2.0.0

https://developers.weixin.qq.com/miniprogram/dev/api/route/EventChannel.on.html

这里可以打印出接收的参数,却没有办法调用this.setData()保存下来,请问怎么解决呢?调用that.setData也一样

回答关注问题邀请回答
收藏

6 个回答

  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    02-17

    这是this指向不对的问题。

    三个方法。

    第一 let that = this 写在你的这个on监听之外。

    第二个 写成箭头函数eventChannel.on(‘questions’, (data) => {console.log(this.)})

    第三个 看下是否可以 bind(this)

    02-17
    有用 2
    回复 2
  • 大冬瓜
    大冬瓜
    04-23

    真菜,改成箭头函数

    04-23
    有用 1
    回复
  • 铅笔画不出蜡笔的味道
    铅笔画不出蜡笔的味道
    02-17
    onLoad:function(options){
        let that = this
        然后内容不变,原来所有的this换成that
    }
    
    02-17
    有用 1
    回复
  • 凝碧
    凝碧
    04-14

    这是js的基本知识吧,改变this指针,有三种方法,这里适用bind

    04-14
    有用
    回复
  • 路
    02-23

    传值一直失败,传不了报错this.getOpenerEventChannel is not a function;怎么解决?

    02-23
    有用
    回复
  • 恒勇-Samur
    恒勇-Samur
    02-17

    还是一样的,不知道为什么呢

    02-17
    有用
    回复 1
    • 鲸鱼
      鲸鱼
      07-28
      你先把js学好吧~建议看看this指向的文章
      07-28
      回复
登录 后发表内容
问题标签