我正在传递带有许多嵌套道具的复杂对象。我有一个使用深层嵌套道具的组件
props.one.two[nth].three[nth].four = boolean
,并且此布尔值的更改不会触发使用它的组件中的重新渲染。我可以在开发工具和日志中看到bool更新正确,但是在我对该组件执行其他操作(例如键入)之前,渲染不会被调用,然后它重新呈现以显示布尔更新。
我只想知道react的变化检测是否对它检测到的嵌套深度有某种限制。
答案 0 :(得分:0)
根据文档,该组件将对对象进行深入检查,以确定是否需要重新渲染,除非该组件是React.PureComponent(用于类组件)或使用React.memo(对于功能组件),只会进行浅表比较。
如果您正在实现shouldComponentUpdate
,它也可能不会重新呈现,并且它返回false。