如何解决Vue.js没有收到mqtt响应消息
我真的是Vue的新手,为此项目我试图将默认值传递给Vue data return()
。当前它打印出console.log('INSIDE CLIENT ON MESSAGE")
。但是定义为this.room1status = 1
的值不会传递或更新为data return room1status
。一旦将值1放入room1status
内,我是否可以将值1传递给client.on('message',function (topic,message)
?
脚本
data(){
return{
room1status: ''
}
},mounted: function(){
var mqtt = require('mqtt')
var client = mqtt.connect('ws://myUrl/')
client.on('connect',function () {
client.subscribe('route_status',function (err) {
if (!err) {
client.publish('presence','Hello mqtt')
}
})
})
client.on('message',message) {
var filterData = message;
var x = JSON.parse(filterData);
console.log('INSIDE CLIENT ON MESSAGE"); /** prints this out succesfully **/
this.room1status = 1; /** but this does not get passed or updated to data return room1status **/
}
}
解决方法
this
函数回调中的 on
不引用组件实例,因此在调用该回调然后使用它之前,应将this
分配给变量vm
在里面:
var vm=this;
client.on('message',function (topic,message) {
var filterData = message;
var x = JSON.parse(filterData);
console.log('INSIDE CLIENT ON MESSAGE");
vm.room1status = 1;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。