Я писал super(props) большое количество раз в жизни, и хотел бы знать:
class Checkbox extends React.Component {
constructor(props) {
super(props);
this.state = { isOn: true };
}
// ...
}
Конечно,
class fields proposal позволяет нам пропустить церемонию инициализации:
class Checkbox extends React.Component {
state = { isOn: true };
// ...
}
Подобный синтаксис был
запланирован, когда в React 0.13 была добавлена поддержка простых классов в 2015 году. Определение конструктора и вызов super(props) всегда предполагалось как временное решение, пока поля класса не предоставят эргономичную альтернативу.
Но вернемся к этому примеру, используя только функции ES2015:
class Checkbox extends React.Component {
constructor(props) {
super(props);
this.state = { isOn: true };
}
// ...
}
Здесь у вас не избежно должны возникнуть следующие вопросы: Почему мы вызываем super? Можем ли мы не вызывать его? Если нам нужно вызвать его, что произойдет, если мы не передадим props? Есть ли другие аргументы?