[英]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.