ngrx /角度6-尝试设置动作参数以及通过效果设置其他动作

时间:2019-01-24 17:33:05

标签: ngrx ngrx-store ngrx-effects

我有一个分派一些UI动作的组件,对于每个UI动作,将更新ngrx存储,然后调用LoadData动作。当前,每个动作如下所示:

export class AddCityFilter implements Action {
  readonly type = ADD_CITY_FILTER;
  constructor(
    public payload: string,
    public loadParams: LoadParams
  ) {}
}

以下是其中一个UI动作在商店中执行的操作的示例:

  switch (action.type) {
    case fromActions.ADD_CITY_FILTER: {
      const cityFilters = [...state.cityFilters, action.payload];
      return {
        ...state,
        cityFilters
      };
    }

,并且在执行这些UI动作之后触发加载动作的效果如下:

 @Effect()
 uiUpdate$ = this.actions$.pipe(
    ofType(
      uiActions.ADD_CITY_FILTER,
      uiActions.REMOVE_CITY_FILTER,
      uiActions.ADD_TYPE_FILTER,
      uiActions.REMOVE_TYPE_FILTER,
      uiActions.UPDATE_SORT_COLUMN
    ),
    map((action: uiActions.uiActions) => {
      return new opportunitiesActions.LoadOpportunities(action.loadParams);
    })

这正在工作,但是,令我烦恼的是,我必须将用于加载操作的参数传递给用于更新UI存储的初始操作。感觉不对,是因为这些操作旨在用于UI存储,并且理想情况下不应意识到下一个加载操作,而且还因为它迫使我将loadParams属性添加到甚至不需要传递任何内容的操作(如果我想将其包括在上述效果中)。有没有办法将loadParams传递给第二个load操作,而不将它们包含在第一个UI操作中?

0 个答案:

没有答案