javascript - 如果我的 props 在 React 中发生变化,如何更新状态以强制重新渲染?

标签 javascript arrays reactjs

我的父组件发送一个名为 array 的 prop,如果这个 prop 发生变化,我希望子组件使用新的 prop 重新渲染。

这是我在子组件中添加的内容:

  componentDidUpdate = prevProps => {
    if (!isEqual(prevProps.array, this.props.array)) {
      this.setState({array: this.props.array});
    }
  };

它似乎有效,尽管我想知道我是否想太多并且有一个更简单的方法。有人建议如果它们相等,你就不能用新数组更新状态吗? 早些时候,但我不太确定这意味着什么,也无法弄清楚。有什么建议吗?

最佳答案

在 React 中,Child 组件应该在其 props 发生更改的情况下进行渲染,因此 componentDidUpdate 中的这段代码不是必需的,因为组件将重新渲染在其自己的。
如果您还想更新状态,那么这段代码在这种情况下就可以了。尽管建议 propsstate 不要使用相同的名称。

关于javascript - 如果我的 props 在 React 中发生变化,如何更新状态以强制重新渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61525402/

相关文章:

CSS - 线性渐变不适用于任何浏览器

javascript - XML : Remove parent, 克隆到同级

c++ - C++计算数组长度

javascript - 如何让javascript将多维数组转换为字符串?

javascript - mobx 存储在生命周期方法内不可访问?

javascript - 上述错误发生在<Provider>组件中

javascript - 为什么相同的 Mocha 测试在第一个之后失败了?

javascript - AngularJS 范围 $id 的值是如何设置的?似乎没有增量。

javascript - jQuery 图像轮播不滑动

arrays - 如何在 Julia 中查找数组中多个元素的位置