Reactjs React不会按预期创建新的嵌套组件
在我的应用程序中,我有一个使用父组件状态属性之一的页面更改机制 所以我做了一些类似的事情:Reactjs React不会按预期创建新的嵌套组件,reactjs,Reactjs,在我的应用程序中,我有一个使用父组件状态属性之一的页面更改机制 所以我做了一些类似的事情: class mainComponent{ state={ mypage:null } onclickhandler(page){ this.setState({mypage:page}); } render(){ return <div>{page}</div> }; } 在我的页面属性中,我有各种输入字段和其他组件 当我更改页
class mainComponent{
state={
mypage:null
}
onclickhandler(page){
this.setState({mypage:page});
}
render(){
return <div>{page}</div>
};
}
在我的页面属性中,我有各种输入字段和其他组件
当我更改页面时,所有输入都会用新值更新。但是,我的自定义嵌套组件永远不会重新创建
相反,reach只调用componentDidUpdate
有没有办法强迫它以某种方式构造一个新的嵌套组件?React不会在不需要的时候重新创建组件-这是优化的一部分,也是React工作的一般方式 当“新”、“预期”组件存在相同类型、相同或没有密钥id时,它只接收更新的道具
更新道具有时不会强制重新命名,因为状态更新是有保证的。PureComponent将道具进行了简单的比较,您可以检查shouldComponentUpdate是否应返回true以强制渲染。onclickhandlerpage{是否应该像onclickhandler=page=>{?另外,我猜state不能有;,它可能应该像state={mypage:null}没有;您的代码有太多错误。您正在使mypage处于状态,然后正在执行此操作。在处理程序中,您可能应该执行类似的操作。setState{mypage:page}当您执行类似操作时,page是什么?我更正了这些输入错误…问题仍然相关缺少太多详细信息,创建如何使用componentShouldUpdate强制重新渲染?我最终使用键重新渲染内部组件。感谢您的解决方案!