在 getDerivedStateFromProps 方法中访问以前的道具

Ema*_*ami 1 reactjs

我有与创建的应用程序React 16.3.X,需要this.propsgetDerivedStateFromProps()方法。

例如:

static getDerivedStateFromProps(nextProps, prevState) {
  console.log(this.props);  // `this` is not defined
  if (nextProps.id !== this.props.id) {
    // do something...
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

显然this未在规定static的方法,但我需要知道的是有没有办法让this.propsgetDerivedStateFromProps()

Pra*_*rma 5

您无法访问this.props内部getDerivedStateFromProps功能。如果你想在函数内部访问一些以前的道具(比如比较),那么你可以在state. 然后您可以将nextProps与存储在state这样的值进行比较

static getDerivedStateFromProps(nextProps, prevState) {
  if (nextProps.id !== prevState.id) {
    // prevState.id represent the prevProps.id
    return {id: nextProps.id};
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

结帐:https : //reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props