У меня есть такой простой код:
const [state, setState] = useState([]);
useEffect(() => {
socket.on('something', data => {
console.log('ONE');
setState(old => {
console.log('TWO');
const newArr = [...old];
// do something to newArr
return newArr;
});
});
return () => {
socket.off('something');
};
}, []);
Все работает, как задумано, но по какой-то причине обратный вызов something
срабатывает один раз (ONE
печатается один раз), но внутри, когда я устанавливаю состояние обратный вызов setState
вызывается дважды (дважды TWO
). Почему это так?