问题
uniapp,页面绑定数据无法更新;mqtt事件监听的问题
App.vue
globalData: {
client: {
"32323":{
name:'1212',ws:null
}
},
}
页面a.vue
//......
onLoad(d){
//我确保this.clientkey是一定会有的且正确,因为要进入该页面,肯定要这个,我输出过也做过判断
this.client = getApp().globalData.client[this.clientkey].ws;
this.mqtton();
}
//按钮触发mqtt连接
mqttconnect(){
this.client = mqtt.connect(....);
this.mqtton();
/*赋予到App*/
getApp().globalData.client[_this.clientkey].ws = _this.client;
}
//......
///methods 监听函数,注册几个监听,尤其是message
mqtton(){
this.client.on(...)
this.client.on('message',function(...){})
......
}
我在message中将会收到数据,并且设置data中的x属性为接收到的数据;
初次进入页面, 按钮触发连接后,并且接收message, 这个时候是可以收到并设置给x属性;
但是,当我返回上一页(a.vue是一个页面),再次进入a.vue;onLoad(d)触发,调用mqtton();好接着下一步分析
这个时候有数据返回,message被触发,也确实可以输出接收到的数据,但是我要修改x,即this.x=接收到的数据,这时候也确实可以赋值,但是对应的绑定的页面上的x更新不了,强制更新不行
而且如果我在a.vue销毁前事件去除所有监听;再次进入,事件是无法响应,但是我onload不是已经再次监听了吗?(这个情况下,message是完全没反应的)