簡體   English   中英

如果我的道具在 React 中發生變化,如何更新 state 以強制重新渲染?

[英]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,那么在這種情況下這段代碼就可以了。 雖然建議不要使用同名的propsstate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM