2016-06-17 9 views
6

Ich weiß, das Super-Schlüsselwort kann verwendet werden, um Funktionen in einer übergeordneten Komponente aufzurufen. Ich bin mir jedoch nicht ganz im Klaren darüber, warum Sie im folgenden Beispiel das Schlüsselwort super verwenden - es einfach übergeben, welche Requisiten auch immer an den Konstruktor übergeben werden.Reagieren, warum Super (Requisiten) im ES6-Klassenkonstruktor verwenden?

Kann jemand bitte etwas Licht auf die verschiedenen Gründe für die Verwendung des Super-Schlüsselwortes in einem ES6-Klassenkonstruktor werfen, in Reaktion?

constructor(props) { 
    super(props); 

    this.state = { 
     course: Object.assign({}, this.props.course), 
     errors: { } 
    }; 

    this.updateCourseState = this.updateCourseState.bind(this); 
    } 
+0

Es wäre hilfreich, die Klassendeklaration zu sehen. z.B. 'Klasse SpecialDialog erweitert Dialog {' –

Antwort

20

Super ermöglicht Ihnen den Zugriff auf die Konstruktormethode der übergeordneten Klasse. Der einzige Grund, Requisiten einzuschließen, besteht darin, innerhalb des Konstruktors auf this.props zuzugreifen.

What's the difference between "super()" and "super(props)" in React when using es6 classes?

+0

Vielen Dank. Das beantwortet meine Frage. – matthewalexander

+0

Kann jemand das etwas erweitern? Also hat 'React.Component' eine eigene Konstruktormethode und wir benutzen' super() ', um das auszulösen? – corysimmons

Verwandte Themen