2016-06-17 25 views
6

Zdaję sobie sprawę, że super słowo kluczowe może być używane do wywoływania funkcji w składniku nadrzędnym. Nie jestem jednak całkowicie pewien, dlaczego użyłbyś super słowa kluczowego w poniższym przykładzie - po prostu przekazując to, co rekwizyty są przekazywane do konstruktora.React, po co używać super (rekwizytów) wewnątrz konstruktora klasy ES6?

Czy ktoś może rzucić nieco światła na różne przyczyny użycia super słowa kluczowego w konstruktorze klasy ES6, w reakcji?

constructor(props) { 
    super(props); 

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

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

Byłoby pomocne zobaczyć deklarację klasy. np. 'class SpecialDialog extends Dialog {' –

Odpowiedz

20

super pozwala na dostęp do metody konstruktora klasy nadrzędnej. Jedynym powodem uwzględnienia rekwizytów jest uzyskanie dostępu do pliku this.props wewnątrz konstruktora.

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

+0

Wielkie dzięki. to odpowiada na moje pytanie. – matthewalexander

+0

Czy ktoś może się trochę rozwinąć? Więc 'React.Component' ma swoją własną metodę konstruktora i używamy' super() ', aby to wywołać? – corysimmons