我在我的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,我想获得下一个道具!
你们可以帮忙吗?
答案 0 :(得分:2)
this.props
中的 componentDidUpdate
与nextProps
中的componentWillReceiveProps
相同,因此您可以使用它。
// componentWillReceiveProps(nextProps) {
// if (nextProps.someProp !== this.props.someProp) {
// doSomething();
// }
// }
componentDidUpdate(prevProps) {
if (this.props.someProp !== prevProps.someProp) {
doSomething();
}
}
答案 1 :(得分:1)
您可以使用getDerivedStateFromProps
代替componentWillReceiveProps
。