我正在运行这样的一些代码。
useEffect(() => {
if (!socket) return
socket.on('newuserconnected', (username) => {
console.log(connectedusers)
})
}, [socket])
来初始化一个事件的回调newuserconnected 在一个socket.io连接上。
我以为这样做后,任何时候我在服务器上调用该事件,客户端(React应用程序)将在运行时打印变量connectedusers 的当前值(想象我在应用程序的其他地方更新它)。
但是,在我定义该事件的时候,该变量的值被 "卡在了时间里"。
为了解决这个问题,我必须做的是将该变量的值添加到useEffect 调用所依赖的变量列表中。
useEffect(() => {
//...
}, [socket, connectedusers])