我的应用程序中有多个reducers,它们组合在app.reducers.ts中。当我的动作发生时,一个reducer的状态应该从另一个reducer的当前状态更新为单个值(因此计划外交付将被调度),然后从第二个reducer的状态中删除该值。 这是我如何删除它,但在此之前我需要更新其他状态。
// Change Eloquent to Array in constructor
$this->game = Game::withTrashed()->with('situation')->find($game_id)->toArray();
// And then change all your toDatabase, toMail, toFacebook etc methods: use $game['name'] instead of $game->name etc.
从应用程序的角度来看,调用2个动作非常糟糕。所以我需要以某种方式在更高层次上处理这个问题。
答案 0 :(得分:0)
您的商店可以有多个减速器,每个减速器分别作用于该动作。
例如,您可以将它们定义为
export function reducer(
state = initialState,
action: fromMyStoreActions.DeliveryAction
): AppState{
switch (action.type) {
case UNPLANNED_ACTIONS.REMOVE_UNPLANNED_DELIVERY:
return Object.assign({}, state, {
deliveries: state.deliveries.filter(delivery => delivery.deliveryId !== payload.deliveryId)
});
...
}
// Another Reducer
export function reducer(
state = initialState,
action: fromMyStoreActions.DeliveryAction
): AppState{
switch (...)
....
然后将所有的reducer传递给模块中的ngrx
,如
StoreModule.forRoot(reducers)