首页 > 解决方案 > 为什么我不能在 useEffect 之外创建订阅?

问题描述

我试图理解为什么以下代码不起作用(在某些情况下,事件触发和调用 setState 对反应组件根本没有影响),除非我将调用 subscribe 放在 useEffect 函数中:

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

特别是我想知道为什么这在第一次渲染后不起作用?我意识到在多次渲染之后,订阅会被创建多次。但是为什么即使渲染次数 = 1 这也不起作用?

任何解释将不胜感激!

标签: javascriptreactjsobservablereact-hooks

解决方案


推荐阅读