我应该在哪里调用 socket.on ?

Posted

技术标签:

【中文标题】我应该在哪里调用 socket.on ?【英文标题】:Where should I call socket.on in react? 【发布时间】:2017-08-15 08:44:27 【问题描述】:

目前我在构造函数中使用 socket.on。但我不能在那里使用 setState 。那么应该使用哪个生命周期来调用 socket.on 呢?

socket.on('users', function (user) 
            switch (user.meta.action) 
                case 'create':
                    store.dispatch(appendUser(user.data));
                    break;

                case 'update':
                    store.dispatch(replaceUser(user.data));
                    break;

                case 'delete':
                    store.dispatch(deleteUser());
                    break;
            
        );

【问题讨论】:

【参考方案1】:

由于您希望在初始化 React 组件时建立 Websockets 连接,因此您应该在 componentDidMount 中进行。这样你就可以使用setState

【讨论】:

以上是关于我应该在哪里调用 socket.on ?的主要内容,如果未能解决你的问题,请参考以下文章