Реакция + редукция + действия + неизменяемый + машинопись
В таблице вообще не отображаются данные .
Запрос и ответнормальный с JSON до действия action.payload,
Неизменяемое состояние с нормальной структурой данных до редуктора,
Выполнение без ошибок в терминале иконсоль,
Не работает:
componentDidMount => componentWillMount X
без асинхронного / ожидающего X
Есть идеи?
// view
async componentDidMount() {
await this.props.requestFlowPlans();
await this.props.requestAdsAdvertisers();
}
...
render() {
const { classes, clients, plans } = this.props;
...
<MUIDataTable
title='table'
data={plans.mergeClientName(clients).items.valueSeq().toArray()}
/>
...
export const FW0100 = connect(
(store: Store) => ({
clients: store.flowClients,
plans: store.flowPlans,
}),
...
)(component);
export default withTheme(withStyles(styles)(FW0100));
// reducer
export const AdsAdvertisersReducer = createReducer<Store['flowClients']>(
new AdsAdvertiserList(),
{
receiveAdsAdvertisers(state, action) {
state.add(action.payload);
}
}
);
export const FlowPlansReducer = createReducer<Store['flowPlans']>(
new FlowPlanList(),
{
receiveFlowPlans(state, action) {
state.add(action.payload);
}
}
);
export const reducer = combineReducers({
flowClients: AdsAdvertisersReducer,
flowPlans: FlowPlansReducer,
});
// store
export interface Store {
flowClients: any;
flowPlans: any;
}
// immutable
export class AdsAdvertiserList extends BaseList { ...
export class FlowPlanList extends BaseList { ...
export class BaseList extends BaseListRecord {
...
add(items = []) {
const values = _.isArray(items) ? items : [items];
const latestItems = values.map(value => [
this.getKey(value),
new this.Clazz(value),
]);
return this.merge({
items: this.items.merge(latestItems),
});
}
}