/

如何在事件回調中使用 useEffect

如何在事件回調中使用 useEffect

我以這樣的代碼運行程式:

1
2
3
4
5
6
7
useEffect(() => {
if (!socket) return

socket.on('newuserconnected', (username) => {
console.log(connectedusers);
});
}, [socket]);

這個程式在 socket.io 連接上初始化了一個 newuserconnected 事件的回調。

我假設這樣做後,每當我在服務器上調用該事件時,客戶端(React 應用程序)會在運行時打印變量 connectedusers當前值(假設我在應用程序的其他地方對其進行了更新)。

但是事實上,該變量的值在我定義事件的時刻就“凍結”了。

為了解決這個問題,我需要將該變量的值添加到 useEffect 的依賴列表中:

1
2
3
useEffect(() => {
//...
}, [socket, connectedusers]);

tags: [“React”, “useEffect”, “socket.io”]