新手问题:我有一个使用ngrx的angular2应用程序,我有一个服务,它将状态(可观察数组)返回给一个组件。
我的问题是,如果我想在组件中使用它的只读子集,我在哪里过滤状态?
我是否在减速机,服务或组件中执行此操作?
答案 0 :(得分:3)
可以在ngrx example application中找到一些指导。有一种模式,其中定义了选择器alongside reducers:
/**
* Because the data structure is defined within the reducer it is optimal to
* locate our selector functions at this level. If store is to be thought of
* as a database, and reducers the tables, selectors can be considered the
* queries into said database. Remember to keep your selectors small and
* focused so they can be combined and composed to fit each particular
* use-case.
*/
export function getBookEntities() {
return (state$: Observable<BooksState>) => state$
.select(s => s.entities);
};
这些选择器是used in (smart) components来选择/过滤状态:
...
export class CollectionPage {
books$: Observable<BooksInput>;
constructor(store: Store<AppState>) {
this.books$ = store.let(getBookCollection());
}
}
此模式/机制可用于过滤组件或服务中的状态 - 最适合您的体系结构。