Que fait calling super () dans un constructeur React?
apprendre réagissez de la docs et suis tombé sur cet exemple :
class Square extends React.Component {
  constructor() {
    super();
    this.state = {
      value: null,
    };
  }
  ...
}
Selon  Mozilla, super vous permet d'utiliser this dans le constructeur. Y a-t-il une autre raison d'utiliser un stand alone!--2--> (je sais super vous permet d'accéder parent de la classe de méthodes, aussi), mais à Réagir est-il un autre cas d'usage de l'appeler juste super() par lui-même?
3 réponses
super() est appelé à l'intérieur d'un composant react seulement s'il a un constructeur. Par exemple, le code ci-dessous ne nécessite pas super:
class App extends React.component {
    render(){
        return <div>Hello { this.props.world }</div>;
    }
}
Cependant, si on a un constructeur puis super() est obligatoire:
class App extends React.component {
    constructor(){
        console.log(this) //Error: 'this' is not allowed before super()
    }
}
pourquoi this ne peut pas être autorisé avant super() est parce que this n'est pas initialisé si super() n'est pas appelé. Cependant, même si nous ne sommes pas à l'aide de this nous avons besoin d'un super() à l'intérieur d'un constructeur car ES6 class constructors MUST call super if they are subclasses. Ainsi, vous devez vous appeler super() tant que vous avez un constructeur. (Mais il n'est pas nécessaire qu'une sous-classe ait un constructeur).
Nous appelons super(props) dans le constructeur si nous devons utiliser this.props par exemple:
class App extends React.component{
    constructor(props){
        super(props);
        console.log(this.props); // prints out whatever is inside props
    }
}
j'espère que je pourrais le rendre clair.
super() appelle constructor ses parent classe. Ceci est nécessaire lorsque vous avez besoin d'accéder à certaines variables de la classe parent. 
À Réagir, lorsque vous appelez super avec accessoires. Réagir fera props disponible dans l'ensemble de la composante par this.props. Voir l'exemple 2 ci-dessous
sans super()
class A {
  constructor() {
    this.a = 'hello'
  }
}
class B extends A {
  constructor(){
    console.log(this.a) //throws an error
  }
}
console.log(new B())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'}))espérons ceci aide!
Permet de le rendre Clair. Pour utiliser ce mot-clé, nous devrions utiliser le mot-clé super avant. quoi?, Oui!, Super est utilisé pour appeler le constructeur de la classe mère. Maintenant vous avez la question ici Pourquoi devons-nous appeler le constructeur parent? La réponse est d'initialiser les valeurs de propriétés auxquelles nous nous référons par ce mot-clé.