Я пытаюсь обновить мой totalMembers
в обратном вызове socket-io. Но состояние не меняется от своего начального значения.
Я хочу выдавать 'join' только при изменении пользователя. Когда я добавляю totalMembers
для использования зависимости эффекта, это прерывает мое приложение. Потому что я изменяю свою ценность в будущем.
const [totalMembers, setTotalMembers] = useState(1);
useEffect(() => {
if (user) {
socket.emit("join", user, (err, total) => { // total === 4
if (err) {
// ...
}
if (total) {
console.log(total); // > 4
setTotalMembers(total);
setTimeout(() => {
console.log(totalMembers); // > 1
}, 2000);
}
});
}
}, [user]);