Я помещаю объект в состояние по действию через эффект:
{
field1: 'value1',
field2: 'value2',
}
, но затем добавляю новое поле (через эффекты, после ответа сервера) и избыточность выглядит так:
{
field1: 'value1',
field2: 'value2',
newField: 'this is new field'
}
В компоненте мне нужно получить только последнее, последнее состояние.Как я могу это сделать ???Подпишитесь, чтобы хранить и получать информацию о состоянии, когда «newField» уже на месте.
@Effect()
initializeMain$: Observable<Action> = this.actions$.pipe(
ofAction(AppInitializeAction),
map(action => {
const obj = {
field1: 'value1',
field2: 'value2',
}
return new InitializeObjAction(obj);
}),
);
@Effect()
addNewFieldToState$: Observable<Action> = this.actions$.pipe(
ofAction(InitializeObjAction),
map(action => {
const newField = {
newField: 'This is new field'
}
return new addNewFieldAction(newField);
}),
);
Я слышал о комбайновых редукторах ... но я не знаю, как его использовать.Редукторы:
@Action(InitializeObjAction)
initialize(state: IAppState, action: InitializeObjAction) {
return { ...state, mainState: action.payload };
}
@Action(addNewFieldAction)
addNewField(state: IAppState, action: addNewFieldAction) {
return {
...state,
mainState: {
...state.mainState,
newField: action.payload
}
};
В компоненте мне нужно:
this.store.select(storeStateWithNewField).subscribe.....