What does calling super() in a React constructor do?

前端 未结 6 494
夕颜
夕颜 2020-11-30 20:55

Learning React from the docs and came across this example:

class Square extends React.Component {
  constructor() {
    super();
    this.state = {
      val         


        
6条回答
  •  感动是毒
    2020-11-30 21:51

    super() will calls the constructor of its parent class. This is required when you need to access some variables from the parent class.

    In React, when you call super with props. React will make props available across the component through this.props. See example 2 below

    without super()

    class A {
      constructor() {
        this.a = 'hello'
      }
    }
    
    class B extends A {
      constructor(){
        console.log(this.a) //throws an error
      }
    }
    
    console.log(new B())

    with super()

    class A {
      constructor(props) {
        this.props = props
      }
    }
    
    class B extends A {
      constructor(props) {
        super(props)
        console.log(this.props)
      }
    }
    
    console.log(new B({title: 'hello world'}))

    Hope this helps!

提交回复
热议问题