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

React中getDerivedStateFromProps为何被调用两次?

getDerivedStateFromProps被调用两次的原因
  • 先纠正一个错误认知:getDerivedStateFromProps 并不是只在组件挂载时触发。在React 16.3及之后的版本中,它会在以下场景被调用:组件挂载时、父组件重新渲染时、组件自身执行setState或forceUpdate时。
  • 你遇到的两次调用情况,核心原因是项目开启了React严格模式(StrictMode)。这是React在开发环境下提供的检测机制,它会刻意重复调用部分关键生命周期方法(包括getDerivedStateFromProps)、组件渲染函数,以及setState等操作,目的是帮你排查代码中可能存在的不纯逻辑(比如在渲染或生命周期里修改全局变量、执行有副作用的操作)。
  • 这种重复调用仅存在于开发环境,生产环境下严格模式会自动禁用,不会出现两次调用的情况。你可以检查项目入口文件,应该能找到包裹组件的<React.StrictMode>标签,移除它就能看到正常的单次调用了。

内容的提问来源于stack exchange,提问作者samer hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:00:47