Пожалуйста, помогите мне понять, как работает установщик состояний при вызове внутри тела функции
const MyComponent = () => {
const [state, setState] = useState(0);
const flagRef = useRef(true);
if (flagRef.current) setState(1);
useEffect(() => {
flagRef.current = false;
});
return 'MyComponent';
}
Запуск этого кода приведет к бесконечной повторной визуализации. Согласно документации React говорится, что функция setState используется для обновления состояния. Он принимает новое значение состояния и ставит в очередь повторный рендеринг компонента. Я интерпретирую это, как следующий рендер будет поставлен в очередь и будет запущен после завершения текущего рендеринга, включая запуск эффекта. Однако эффект никогда не запускается вообще, даже один раз, и цепочка повторного рендеринга происходит вечно, без выручки, даже если код снова обновляет то же состояние, т.е. 1
Пожалуйста, помогите мне понятьвнутренняя работа этого куска кода.