Я пытаюсь понять, почему следующий код не работает (в некоторых случаях запуск события и вызов setState вообще не будут влиять на компонент реагирования), если я не помещу вызов для подписки внутри функции useEffect. :
function MyComponent() {
const [state, setState] = useState(false);
customSubscription.subscribe(someEvent, () => setState(true);
return <div>{state}</div>;
}
В частности, мне интересно, почему это не работает после первого рендера? Я понимаю, что после более чем одного рендеринга подписка будет создаваться несколько раз. Но почему это не работает, даже если число рендеров = 1?
Любое объяснение будет с благодарностью!