children
をレンダリングするコンポーネントがありますが、それらの子はredux
のコンポーネントまたはタイマーベースの更新コンポーネントです。親コンポーネントはそれを知らない。ただし、親コンポーネントはパフォーマンスの最適化のためにshouldComponentUpdate
を実装します。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
は、自己更新/接続コンポーネントです。そして、この星座に:そのプロパティがその親コンポーネントtitle
にもかかわらず、原因redux
状態の変化や内部のタイムアウト(しかし、それはその実装)に変更したときに
<Container title="Current Time">
<Clock/>
</Container>
はClock
はまだ変更決して更新されないであろう、したがって、componentShouldUpdate
呼び出しがfalse
を返します。 ?
クロックがタイマーを使用し、ローカルコンポーネントの状態が更新される場合は、 – philk
https://codepen.io/anon/pen/YGWVXv – Benjamin
'shouldComponentUpdate'は' shouldComponentUpdate'でコンポーネントのレベルでレンダリングの変更をブロックするだけです。子供が親から 'shouldComponentUpdate'で更新された小道具を期待していて、更新がなければ、子どもも更新されません。子供(または 'connect'からパイプされた小道具)によって特別に扱われる状態の変更がある場合、それらは分離しています。 – Benjamin