Есть контейнер TableContainer - содержит данные таблицы, состояние сортировки, обработчики.
И есть компонент Table, отрисовывает данные переданные из контейнера и использует переданные из контейнера обработчики.
TableContainer подключен к редакс.
В componentDidMount TableContainer, происходит запрос за данным по получению которых обновляется redux store.
Данные из редакс стора ложатся в стейт TableContainer (не ложатся почему-то.., но в самом сторе лежат). Если переключиться по роутам, то при обратном заходе на страницу с таблицей, данные подгрузятся как положено (Т.к. в сторе они уже есть).
Стейт TableContainer
state = {
data: this.props.data, //данные из редакса
sortParams: {
column: null,
direction: null,
},
};
componentDidMount() {
this.props.fetchTableData(this.props.service);
}
...
В рендере TableContainer рисуется Table с данными из своего стейта.
render() {
return <Table data={this.state.data} handlers={handlers}>
}
Проблема в том что при получении данных при первой загрузке не обновляется state TableContainer и соответственно не перерисовывается Table). В сторе данные есть, но стейт TableContainer не обновился и в Table просто передался пустой массив.
Почему такое происходит? В редьюсерах везде возвращаются новые объекты.