小编Rah*_*ain的帖子

无法从套接字事件处理函数访问反应状态

我有一个 React 应用程序,我使用 socket.io 进行实时消息传递。我试图在所有反应功能组件中使用通用套接字对象,但在事件处理函数中我无法访问状态对象。

配置:

var socket = io(socketEndPoint)
socket.emit('register', cookies)
export { socket }
Run Code Online (Sandbox Code Playgroud)

聊天组件:

import {socket} from './Config'
export default function ChatComponent(props) {
  const [chats, setChat] = React.useState([{chat_id: 1234}])
  socket.on('message', (data) => {
    console.log(data)
    console.log(chats)
  })
}
Run Code Online (Sandbox Code Playgroud)

console.log(chats) 始终打印一个空数组。

我尝试使用 Context Api 但仍然没有帮助。有什么方法可以访问反应状态。提前致谢。

socket.io reactjs

4
推荐指数
1
解决办法
1501
查看次数

标签 统计

reactjs ×1

socket.io ×1