如何访问componentWillReceiveProps中的方法和this.state并使其平稳过渡到getDerivedStateFromProps?

时间:2018-09-11 16:16:31

标签: javascript reactjs

  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 中访问它们,而无需在其他生命周期方法中移动大量逻辑。

1 个答案:

答案 0 :(得分:0)

首先getDerivedStateFromProps不能代替componentWillReceiveProps。有关更多详细信息,请参见this post

要使用getDerivedStateFromProps返回状态,只需返回一个对象。

示例:

return {
  myState: 'updated state'
}

如果没有条件匹配,则只需返回null:

return null

类似于setState示例:

setState({myState: 'updated state'})