ログには、親コンポーネントが再レンダリング中であることが示されます。
しかし、子コンポーネントのrenderメソッドは呼び出されません。React、親のレンダーは子どもを再レンダリングさせますか?
私は子供が次のような論理で元気づけていると思いました。私はそれについて間違っていると思います。 親が再レンダリングされたときにどの子コンポーネントが再レンダリングされるかをどのように判断するか?
- 親のレンダリング
- - shouldComponentUpdateがtrueを返す場合、子供は
親が
render() {
let { viewConfig } = this.props
console.log("ViewConfigSettingBase rendering")
return (
<div>
{
Object.keys(viewConfig.availableSubviewConfigMap).map((sectionName, index) => {
var subviewConfigData = viewConfig.availableSubviewConfigMap[sectionName]
return (
<ViewConfigSettingRow
key={sectionName}
viewConfigData={subviewConfigData}
sectionName={sectionName}
parentViewConfig={viewConfig}
/>
)
})
}
</div>
)
}
だから、 'PureComponent'は浅い前者のみ実装していることにComponent''とは異なっています'shouldComponentUpdate'で等しく、後者は常に' true'を返します。純粋であるかどうかに関わらず、 'SCU'が' false'を返した場合、レンダリングは呼び出されず、子コンポーネントも再レンダリングされず、新しい小道具も受け取られません。しかし、子コンポーネントは、親が再レンダリングしなくても、その「状態」が(人工的に)変更された場合、再レンダリングできます。右? – Qwerty