我对React中的渲染有疑问。见下图
呈现SelectableGroup
组件是因为它更改了其状态(调用setState()
)。然后,将渲染其所有子项,直到DashboardConfigs
组件为止。 DashboardConfigs
组件未呈现,因为其shouldComponentUpdate()
返回false。
现在我的问题是,为什么Grid
和DashboardConfigs
的所有其他后代被渲染?
我认为从shouldComponentUpdate
返回false应该从渲染过程中切断整个组件树的分支。
请注意:
Grid
未连接到商店。SelectableGroup
和Grid
是react-bootstrap库中的组件。他们可能将上下文用于内部目的。重绘的原因可能是上下文吗? (我尚不知道上下文是如何工作的)答案 0 :(得分:2)
https://reactjs.org/docs/react-component.html#shouldcomponentupdate
” ... 请注意,返回false不会阻止子组件在其状态更改时重新呈现。”
我不知道组件的编写方式,但是您应该确保子组件的状态不变