[英]How do I update the state to force a rerender if my props change in React?
我的父組件發送一個名為array
的道具,如果這個道具發生變化,我希望子組件使用新道具重新渲染。
所以這是我在子組件中添加的內容:
componentDidUpdate = prevProps => {
if (!isEqual(prevProps.array, this.props.array)) {
this.setState({array: this.props.array});
}
};
它似乎正在工作,雖然我想知道我是否想太多並且有一個更簡單的方法。 有人建議If they're equal, couldn't you update the state with the new array anyway?
早些時候,但我不太確定這意味着什么,也無法弄清楚。 有什么建議么?
在 React 中, Child
組件應該在其 props 發生變化的情況下渲染,因此componentDidUpdate
中的這段代碼不是必需的,因為組件將自行重新渲染。
如果您還想更新 state,那么在這種情況下這段代碼就可以了。 雖然建議不要使用同名的props
和state
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.