如何确定替换componentWillReceiveProps并保持获取nextProps?

时间:2019-03-09 17:01:11

标签: reactjs react-redux

我在我的App中运行React 16.8.4,在某些情况下,我确实需要使用nextProps。正如React Docs所说,componentWillReceiveProps是一种UNSAFE方法,不建议再使用它。

我阅读了文档(https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key),但我什至不知道如何使用带有密钥和所有内容的该版本来移植我的旧componentWillReceiveProps。

我不需要创建新的组件实例,我只需要nextProps! 我尝试使用componentDidUpdate(),但我不想获取prevProps,我想获得下一个道具

你们可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

this.props中的

componentDidUpdatenextProps中的componentWillReceiveProps相同,因此您可以使用它。

// componentWillReceiveProps(nextProps) {
//   if (nextProps.someProp !== this.props.someProp) {
//     doSomething();
//   }
// }

componentDidUpdate(prevProps) {
  if (this.props.someProp !== prevProps.someProp) {
    doSomething();
  }
}

答案 1 :(得分:1)

您可以使用getDerivedStateFromProps代替componentWillReceiveProps