componentWillReceiveProps(nextProps) {
if (
**this.state.clicked** &&
this.props.something &&
nextProps.addSubtract
) {
this.setState({ valid: nextProps.isValid });
}
if (!this.props.someItems) {
this.setState({ products: nextProps.propsValues});
}
if (nextProps.valueOfProps && **this.methodOnClass**) {
..........
..........
}
}
上面的代码类似于我正在从事的一个新项目,遇到了一个障碍。由于 componentWillReceiveProps 已被弃用,我需要用 this.method 和 this.state 替换其中的许多代码,有没有办法可以在 getDerivedStateFromProps 中访问它们,而无需在其他生命周期方法中移动大量逻辑。
答案 0 :(得分:0)
首先getDerivedStateFromProps
不能代替componentWillReceiveProps
。有关更多详细信息,请参见this post。
要使用getDerivedStateFromProps
返回状态,只需返回一个对象。
示例:
return {
myState: 'updated state'
}
如果没有条件匹配,则只需返回null:
return null
类似于setState示例:
setState({myState: 'updated state'})