原因:
微信小程序原生开发中,emitter.on可以传入第三个参数用于绑定this,但实际使用发现只在页面中有效,在组件中无效。
解决方案:
如果是在组件中,希望再回调时使用正确的this,可以在全局设置一个变量。在组件生命周期(attached)中将组件的this赋值过去
import { emitter } from "/app"
let that = null
Component({
lifetimes:{
attached(){
that = this
emitter.on('test',this.test)
}
},
data: {
},
methods: {
test() {
console.log(that);
that.setData({
list:[1,2,3]
})
},
}
})