假设我有一个渲染子项
的组件,但这些子项可以通过redux
连接或基于计时器的更新组件。父组件不知道这一点。然而,父组件实现了 shouldComponentUpdate
来优化性能。
class Container extends React.Component {
shouldComponentUpdate(nextProps, nextState) { return shallowCompare(this, nextProps, nextState) }
render() {
return <div>
<h1>{this.props.title}</h1>
{ children }
</div>
}
}
可以说,Clock
是一个 self 更新/连接的组件。在这个星座中:
<Container title="Current Time">
<Clock/>
</Container>
当其属性由于 redux
状态更改或内部超时(无论其实现方式如何)而发生变化时,Clock
仍会更新,尽管其父组件 title
永远不会改变,因此 componentShouldUpdate
调用返回 false
?
最佳答案
如果Clock
正在从Container
接收 Prop ,并且Container
由于shouldComponentUpdate
而没有更新,则Clock
将不会更新。如果它连接到商店,那么它应该更新,因为它将直接接收 Prop 。
关于reactjs - shouldComponentUpdate 是否会阻止连接的子组件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522416/