我喜欢更新我的代码使用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;
}
getDerivedStateFromProps
看起来不像是您想要做的正确工具。改为使用componentDidUpdate
:
componentDidUpdate(prevProps) {
const { date } = this.props;
if (prevProps.date !== date) {
this.getList(date);
}
}
很少使用getDerivedStateFromProps
。有关何时使用getDerivedStateFromProps
的更多信息,我推荐阅读本文