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

React重渲染疑问:invalidFields状态变化时ComponentB会重渲染吗?

问题解答

当invalidFields状态变化时,ComponentB是否会触发重渲染,要分两种情况来看:

  • 默认未优化场景
    只要invalidFields的变化导致父组件ComponentA触发重渲染,不管传给ComponentB的invalidInputs属性值有没有改变,ComponentB都会跟着重渲染——这是React的默认行为:父组件重渲染时,所有子组件都会同步执行渲染流程。

  • 使用React.memo优化后的场景
    如果ComponentB被React.memo包裹做了性能优化,那么只有当invalidInputs的实际值发生变化时,它才会触发重渲染:

    • 比如invalidFields从空数组[]变成包含元素的数组,invalidInputs从false变为true,属性值确实改变,ComponentB会重渲染;
    • 但如果invalidFields只是内部元素更新(比如从['error1']变为['error2']),它的长度始终不为0,invalidInputs一直是true,属性值没有变化,ComponentB就不会重渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:07:00