我的父组件发送一个名为 array
的 prop,如果这个 prop 发生变化,我希望子组件使用新的 prop 重新渲染。
这是我在子组件中添加的内容:
componentDidUpdate = prevProps => {
if (!isEqual(prevProps.array, this.props.array)) {
this.setState({array: this.props.array});
}
};
它似乎有效,尽管我想知道我是否想太多并且有一个更简单的方法。有人建议如果它们相等,你就不能用新数组更新状态吗?
早些时候,但我不太确定这意味着什么,也无法弄清楚。有什么建议吗?
最佳答案
在 React 中,Child
组件应该在其 props 发生更改的情况下进行渲染,因此 componentDidUpdate
中的这段代码不是必需的,因为组件将重新渲染在其自己的。
如果您还想更新状态,那么这段代码在这种情况下就可以了。尽管建议 props
和 state
不要使用相同的名称。
关于javascript - 如果我的 props 在 React 中发生变化,如何更新状态以强制重新渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61525402/