0

我喜欢更新我的代码以使用 getDerivedStateFromProps 而不是 componentWillReceiveProps,因为我收到了已弃用的错误。该组件正在接收一个日期属性,并且每次更改日期时都需要使用新日期运行 getList。为此,我使用下面的代码

componentWillReceiveProps(nextProps) {
    const {date} = this.props;
    if (nextProps.date !== date) {
      console.log('prop changed to : ', nextProps.date);
      this.getList(nextProps.date);
    }
  }

我尝试了以下但它不起作用

static getDerivedStateFromProps(props, state) {
    const {date} = this.props;
    if (props.date !== date) {
      console.log('prop changed to : ', props.date);
      this.getList(props.date);
    }
    return;
  }
4

1 回答 1

1

getDerivedStateFromProps看起来不适合您尝试做的事情。而是使用componentDidUpdate

componentDidUpdate(prevProps) {
  const { date } = this.props;
  if (prevProps.date !== date) {
    this.getList(date);
  }
}

使用非常少见getDerivedStateFromProps。有关何时使用的更多信息,getDerivedStateFromProps我推荐这篇文章

于 2021-09-29T00:09:33.337 回答