在我的应用程序中,我有一个页面更改机制,该机制使用父组件状态的属性之一。
所以我做类似的事情:
class mainComponent{
state={
mypage:null
}
onclickhandler(page){
this.setState({mypage:page});
}
render(){
return <div>{page}</div>
};
}
在“页面”属性中,我具有各种输入字段和其他组件。
当我更改页面时,所有输入都会更新为新值。但是,永远不会重新创建我的自定义嵌套组件。
相反,您只需致电componentDidUpdate
就可以了。
有没有办法强迫它以某种方式构造一个新的嵌套组件?
答案 0 :(得分:1)
在不需要时,React不会重新创建组件-它是优化的一部分,也是一般反应方式的一部分。
当存在“新”,“预期”组件(相同类型,相同或没有key
id)时,它仅接收更新的道具。
有时更新道具不会强制重新渲染(保证状态更新)。 PureComponent
较浅地比较道具,您可以检查shouldComponentUpdate
(应返回true以强制渲染)。