getDerivedStateFromProps

getDerivedStateFromProps

因此,刚刚了解到不建议使用componentWillReceiveProps,我们现在需要使用getDerivedStateFromProps生命周期方法。
https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops

我正在如下使用它:

class Main extends Component {
  static getDerivedStateFromProps(props) {
    console.log('getDerivedStateFromProps', props);
    const { modal } = props;
    this.setState({ modal });
  }

  constructor(props) {
    super(props);

    this.state = {
      modal: {}
    };
  }


但是它在setState上出错

javascript - 使用getDerivedStateFromProps(React)时出现错误:无法读取null的属性'setState'-LMLPHP


  main.js:30未捕获的TypeError:无法读取null的属性“ setState”
      在getDerivedStateFromProps(main.js:30)


我在这里想念什么?

最佳答案

因为getDerivedStateFromPropsstatic函数,所以没有实例(this)。

而是设计了此函数,以便您返回状态而不是使用this.setState

static getDerivedStateFromProps(props) {
    console.log('getDerivedStateFromProps', props);
    const { modal } = props;
    return { modal };
  }

10-06 02:02