在商店中滚动Ngrx实体的问题

时间:2018-05-08 23:15:58

标签: angular ngrx ngrx-store ngrx-entity

我一直在开发一款应用来学习Angular Ngrx商店和实体。该应用程序使用ngrx / platform中的示例应用程序作为起点。 The code and app is here on StackBlitz

我正在尝试使用createSelector来过滤pomos,其task_id与所选任务的id匹配。甚至无法做到这一点,我尝试使用基于EntityAdapter的pomo reducer将所有pomos加载到状态。这也行不通。我的所有操作都是成功的,包括在商店中添加pomo但我无法加载它们。在这一点上,我只是试图让所有这些加载,但最终目标是一个选择器,根据它的task_id加载pomos。我怀疑问题很可能是国家实际上是如何组成的,但我无法弄清楚如何去做。就像我说的那样,添加Pomo到商店的动作很好,但在加载pomos时。它返回空。

以下是我对Redurs / index.ts的内容

export interface State {
  search: fromSearch.State;
  tasks: fromTasks.State;
  pomos: fromPomos.State;
  collection: fromCollection.State;
}

export const reducers: ActionReducerMap<any> = {
  search: fromSearch.reducer,
  tasks: fromTasks.reducer,
  pomos: fromPomos.reducer,
  collection: fromCollection.reducer,
};

export const getTasksState = createFeatureSelector<TasksState>('tasks');
export const getPomosState = createSelector(getTasksState, state => state.pomos);


export const getTaskEntitiesState = createSelector(
  getTasksState,
  state => state.tasks
);


export const getPomosEntitiesState = createSelector(
  getTasksState,
  state => state.pomos
);

export const {
  selectIds: getTaskIds,
  selectEntities: getTaskEntities,
  selectAll: getAllTasks,
  selectTotal: getTotalTasks,
} = fromTasks.adapter.getSelectors(getTaskEntitiesState);

export const {
  selectIds: getPomoIds,
  selectEntities: getPomoEntities,
  selectAll: getAllPomos,
  selectTotal: getTotalPomos,
} = fromPomos.adapter.getSelectors(getPomosEntitiesState);

0 个答案:

没有答案