javascript - 为什么我不能在 useEffect 之外创建订阅?
问题描述
我试图理解为什么以下代码不起作用(在某些情况下,事件触发和调用 setState 对反应组件根本没有影响),除非我将调用 subscribe 放在 useEffect 函数中:
function MyComponent() {
const [state, setState] = useState(false);
customSubscription.subscribe(someEvent, () => setState(true);
return <div>{state}</div>;
}
特别是我想知道为什么这在第一次渲染后不起作用?我意识到在多次渲染之后,订阅会被创建多次。但是为什么即使渲染次数 = 1 这也不起作用?
任何解释将不胜感激!
解决方案
推荐阅读
- xaml - 如何更改 ListView ViewCell ContextActions 的 BG 颜色
- sed - 如何在VI中加入一堆行
- neo4j - Neo4j 驱动程序实例化失败,ECONNREFUSED 127.0.0.1:11002
- oracle - 数一数。在 Oracle 数据库中使用 expdp 导出的表
- laravel - Laravel - 在 post 方法中在 postman 中运行 api 时获取输入值
- c++ - 带有 *.in 文件的 Doxygen
- marklogic - 创建 TDE Marklogic 时不支持列名中的点
- apache - 来自 2 个不同端口的 Apache 重定向子域
- ionic3 - 无法读取属性“纬度”未定义
- c# - ASP.NET MVC 视图:当前上下文中不存在名称“注入”