React篇(053)-构造函数使用带 props 参数的目的是什么?

2022-12-05 14:08:24 浏览数 (2)

在调用super()方法之前,子类构造函数不能使用this引用。这同样适用于ES6子类。将props参数传递给super()的主要原因是为了在子构造函数中访问this.props

带 props 参数:

代码语言:javascript复制
class MyComponent extends React.Component {
  constructor(props) {
    super(props)

    console.log(this.props) // prints { name: 'John', age: 42 }
  }
}

不带 props 参数:

代码语言:javascript复制
class MyComponent extends React.Component {
  constructor(props) {
    super()

    console.log(this.props) // prints undefined

    // but props parameter is still available
    console.log(props) // prints { name: 'John', age: 42 }
  }

  render() {
    // no difference outside constructor
    console.log(this.props) // prints { name: 'John', age: 42 }
  }
}

上面的代码片段显示this.props仅在构造函数中有所不同。它在构造函数之外是相同的。

0 人点赞