[英]How to reload child component when the state of parent class changed
在父类中,我将项目传递给子组件。
<InfoWidget bar={this.state.bar}>
</InfoWidget>
然后,接收数据并在此处使用prop.bar
const InfoWidget = (props) =>{
const [length, setLength] = useState([]);
const classes = useStyles();
useEffect(() => {
setLength( props.bar * 10);
}, []);
return(
<Paper>
{length}
</Paper>
);
}
第一次加载效果很好,但是当父类的 state.bar 发生变化时,不会重新加载子组件。
我想重新加载子组件,每次父类的值发生变化时。
我应该在哪里改变?
将其添加为依赖项:
useEffect(() => {
setLength(props.bar * 10);
}, [props.bar]);
将 key 添加到 parent,当key
发生变化时,它会重新渲染组件
<InfoWidget key={this.state.bar} bar={this.state.bar}>
</InfoWidget>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.