You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除React Strict Mode解决了错误,我的代码是否存在问题?

关于React组件重复渲染与StrictMode的疑问解答
  • React.StrictMode在开发模式下刻意触发两次渲染,这是官方有意设计的特性,目的就是帮你找出渲染阶段的意外副作用。比如在render函数里直接修改状态、在函数组件顶层(不是useEffect钩子内)执行DOM操作或调用改变外部状态的函数,这类不符合React规范的行为,两次渲染会把问题放大,让你更容易察觉。

  • 移除StrictMode后重复渲染消失,基本可以确定你的代码存在渲染阶段的副作用。比如你遇到的setState调用次数异常,很大可能是因为在不该触发setState的地方(比如render逻辑里、组件顶层代码)调用了它,StrictMode的两次渲染让这个调用执行了多次,才出现了次数不一致的问题。

  • 别觉得生产环境不会触发就没事——StrictMode只在开发模式生效,生产环境会自动禁用,但开发模式下的这个特性就是在帮你提前排查生产环境可能出现的隐性bug,建议你顺着这个提示去修复代码里的副作用,而不是直接移除StrictMode。

有人提到:这是React.StrictMode的一项有意设计的特性,仅在开发模式下生效,用于帮助发现渲染阶段的意外副作用。

内容的提问来源于stack exchange,提问作者Cinc-B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:20:42