> Хотел бы один момент отметить, вот так объявлять 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, не получится их так дернуть, пока он не инициализирован. Здесь просто надо изначально ориентироваться, какие свойства и состояния будут требовать инициализации объекта, а какие нет. А так это синтаксический сахар, выполнение одной и той же задачи с одним и тем же результатом, просто по-разному. А официальная документация реакта, как хорошо заметили на хабре - написана как поток сознания :) Там не все показано.