首页 > 解决方案 > 这是 React 的 bug 还是一个惊人的 React 特性?

问题描述

我正在尝试将具有 10 行数组的对象发送到组件。组件需要保留旧数据,并且只将新数组连接到现有数组。

当我试图检查 componentDidUpdate 中的数组并连接到我的旧数据状态时,我注意到我得到了两次数据!

然后我删除了componentDidUpdate,没有任何额外的setState,当新的props到来时,数组的状态被连接!

这很奇怪,我不知道这是怎么回事。这是我不知道的 React 中的错误还是功能?

componentDidMount() {
    const { data } = this.props;

    this.setState({
      allData: data
    });
  }

所以这一切都是在 setState 方面发生的。当新的数据道具出现时,它会不断添加到 allData 中!!!!

标签: reactjsstatereact-propsreact-state

解决方案


尝试使用看起来更适合您想要做的事情的 getDerivedStateFromProps


推荐阅读