我应该在哪里调用 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 ?的主要内容,如果未能解决你的问题,请参考以下文章

socket.on 调用它的回调太多次

Android:我在哪里可以在服务中实现 socket.on(...)?我多次收到相同的消息

angular 4/socket.io 访问全局变量和函数调用

我应该在哪里声明在 useEffect() 钩子中调用的函数?

我应该在哪里使用 C# 调用方法 connection.Open()?

如果不在 viewDidLoad 中,我应该在哪里进行初始网络调用(例如,最初填充提要)?