我以這樣的代碼運行程式:
useEffect(() => {
if (!socket) return
socket.on('newuserconnected', (username) => {
console.log(connectedusers);
});
}, [socket]);
這個程式在 socket.io 連接上初始化了一個 newuserconnected
事件的回調。
我假設這樣做後,每當我在服務器上調用該事件時,客戶端(React 應用程序)會在運行時打印變量 connectedusers
的當前值(假設我在應用程序的其他地方對其進行了更新)。
但是事實上,該變量的值在我定義事件的時刻就“凍結”了。
為了解決這個問題,我需要將該變量的值添加到 useEffect
的依賴列表中:
useEffect(() => {
//...
}, [socket, connectedusers]);