0

@ngrx 效果示例中使用了四个化简器,即 (1) 书籍 (2) 集合 (3) 布局和 (4) 搜索。我不明白为什么collection这里需要减速器,因为books减速器已经反映了addorremove操作后集合的状态。我只看到使用collection减速器来跟踪loadingloaded状态。

查看正在创建的书籍的最终状态getBookCollection。在getBookEntities任何添加或删除后反映集合的状态,因此不必与collection减速器组合。

我在这里错过任何逻辑吗?

export const getCollectionState = (state: State) => state.collection;

export const getCollectionLoaded = createSelector(getCollectionState, fromCollection.getLoaded);
export const getCollectionLoading = createSelector(getCollectionState, fromCollection.getLoading);
export const getCollectionBookIds = createSelector(getCollectionState, fromCollection.getIds);

export const getBookCollection = createSelector(getBookEntities, getCollectionBookIds, (entities, ids) => {
  return ids.map(id => entities[id]);
});
4

1 回答 1

0

图书状态不会反映在用户的图书收藏中添加或删除图书后的收藏状态。

使用 redux devtools,第一张图片显示我的图书状态中有 2 本书,我的收藏状态中有 2 本书:

收藏中的两本书

删除其中一本书后,您可以看到书籍状态保持不变,并且该集合现在只有一个 id。

收藏中的一本书

于 2017-06-27T11:21:01.813 回答