> Хотел бы один момент отметить, вот так объявлять state неправильно:
На самом деле это не мой код, а как я и писал выше, это официальный пример :) https://github.com/callemall/material-ui/blob/v1.0.0-beta.6/docs/src/pages/demos/snackbars/SimpleSnackbar.js#L19
Но вам плюс, что вы заметили. Хотя правильно не только так, как вы сказали. Вполне достаточно прописать static state. Я вам более скажу, можно вот так:
import lodash from 'lodash';
import DataView from '../';
let defaultProps = lodash.cloneDeep(DataView.defaultProps);
defaultProps = Object.assign(defaultProps, {
connector_path: 'deals',
});
export default class DealsDataView extends DataView{
// ...............
}
DealsDataView.defaultProps = defaultProps;
Это я расширяю свойства по умолчанию, полученные от базового класса, можно так же и стейты расширять. Согласитесь, если это засунуть в constructor, не получится их так дернуть, пока он не инициализирован. Здесь просто надо изначально ориентироваться, какие свойства и состояния будут требовать инициализации объекта, а какие нет. А так это синтаксический сахар, выполнение одной и той же задачи с одним и тем же результатом, просто по-разному. А официальная документация реакта, как хорошо заметили на хабре - написана как поток сознания :) Там не все показано.