2016-06-17 2 views
6

Я понимаю, что ключевое слово super может использоваться для вызова функций в родительском компоненте. Тем не менее, я не совсем понимаю, почему вы использовали бы ключевое слово super в приведенном ниже примере - просто передавая его, независимо от того, передаются ли реквизиты конструктору.React, зачем использовать супер (реквизит) внутри конструктора класса ES6?

Может кто-то пролить свет на различные причины использования ключевого слова super в конструкторе класса ES6, в ответ?

constructor(props) { 
    super(props); 

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

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

Было бы полезно увидеть декларацию класса. , например. 'class SpecialDialog расширяет Dialog {' –

ответ

20

super позволяет получить доступ к методу конструктора родительского класса. Единственной причиной включения реквизита является доступ к this.props внутри вашего конструктора.

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

+0

Большое спасибо. что отвечает на мой вопрос. – matthewalexander

+0

Может кто-то немного расширится? Итак, 'React.Component' имеет свой собственный метод конструктора, и мы используем' super() 'для запуска этого? – corysimmons

Смежные вопросы