@ngrx effects示例中使用了四个减速器,即(1)书籍(2)集合(3)布局和(4)搜索。我不明白为什么这里需要collection
缩减器,因为books
缩减器已经在add
或remove
操作后反映了集合的状态。我看到使用collection
缩减器仅跟踪loading
和loaded
状态。
查看使用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]);
});
答案 0 :(得分:0)
从用户的图书集中添加或删除图书后,图书状态并不反映收藏状态。
使用redux devtools这第一张图片显示我的书籍状态有2本书,收藏状态有2本书:
删除其中一本书后,您可以看到书籍状态保持不变,而该集合现在只有一个ID。