javascript - Websocket onmessage 事件不更新组件数据

标签 javascript callback event-handling vue.js

我正在挂载中设置回调:

data() {
    return {
        code: 'Apple',
    }
},
mounted() {
    console.log(this.code) // prints 'Apple'
    this.$options.sockets.onopen = this.wsOpen();
    this.$options.sockets.onmessage = this.logMessage(msg);
},
methods: {
    logMessage(msg){
        this.code += "\n" + msg.data;
        console.log("this.code: " + this.code);
    },
}

但是它告诉我“msg”未定义。 以下内容有效,但是 this.code 超出了范围:

this.$options.sockets.onmessage= function (msg) {
        console.log(msg.data) // this works, msg is not undefined here
        console.log(this.code) // doesnt work, this.code is undefined
    }

我觉得我在做一些愚蠢的事情。

最佳答案

只需将其设置为函数即可。

this.$options.sockets.onmessage = this.logMessage;

代码当前将 onmessage 设置为 this.logMessage(msg)结果,并且如错误所述, msg 未定义已安装

关于javascript - Websocket onmessage 事件不更新组件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467450/

相关文章:

javascript - 什么更可行? Javascript 库还是 UI 编程工具?

java - 如何在android中实现回调?

javascript - 是否可以触发/绑定(bind) jQuery UI 事件?

javascript - 隐藏 xAxis highchart 上的特定列

javascript - jQuery :contain multiple selection

Android通知取消回调?

javascript - 单击时清除/重置绑定(bind)计时器/倒计时事件

java - 检测 GWT RichTextArea 'dirty' 状态

c++ - 将数据流式传输到 protobuf 解析器 C++

javascript - 如何传递多个 groupid 和主题对以使用 node-rdkafka 进行消费?