首页 > vue组件中socket回调函数中赋值问题

vue组件中socket回调函数中赋值问题

问题见代码注释处

Vue.component("test", {
    template: "#test",
    data: function() {
        return {
            messages: ['sdddddd','ddddd','qwwq'],
            newMessage: '11111'
        }
    },
    methods: {
        createMessage: function() {
            var newMessage = this.newMessage;
            if (newMessage) {
                socket.emit('createMessage', newMessage);
                this.newMessage = ''
            }
        },
        messageListen: function() {
            socket.emit('getAllMessages');
            socket.on('allMessages', function(messages) {
                //如何在这里把接收到的messages赋值给该组件的messages变量,下面的写法不可以,貌似是this作用域的问题
                this.messages = messages;
            });
            socket.on('messageAdded', function(message) {
                this.messages.push(message);
                autosb();
            });
        }
    },
    ready: function() {
        this.messageListen();
    }
})

使用es6箭头函数,或者弄个 this 别名

【热门文章】
【热门文章】