Почему я не могу создать подписку вне useEffect? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь понять, почему следующий код не работает (в некоторых случаях запуск события и вызов setState вообще не будут влиять на компонент реагирования), если я не помещу вызов для подписки внутри функции useEffect. :

function MyComponent() {
  const [state, setState] = useState(false);
  customSubscription.subscribe(someEvent, () => setState(true);
  return <div>{state}</div>;
}

В частности, мне интересно, почему это не работает после первого рендера? Я понимаю, что после более чем одного рендеринга подписка будет создаваться несколько раз. Но почему это не работает, даже если число рендеров = 1?

Любое объяснение будет с благодарностью!

...