#React

React 19 升级后,useEffect 跑了两遍,求助

由@chen-yinuo发起讨论 · 发布于 2026年7月31日 · 更新于 2026年8月3日

升级 React 19 后,发现部分 useEffect 莫名其妙跑了两次。一开始以为是 Strict Mode(本来就跑两次),但 prod 构建里也出现了。

最后定位到是用了 React Compiler 之后,有些 effect 被自动 memo 化,依赖收集变了,触发了额外执行。关掉 compiler 后恢复正常。

官方说这算 "正确行为",但对有副作用的代码(埋点、支付)真的很危险。

大家是怎么保证 effect 只跑一次的?ref 标志位算最佳实践吗?

回复

暂时没有回复。

Related

相关推荐