我从@ngrx example获取了以下代码。
constructor(private store: Store<fromRoot.State>) {
this.searchQuery$ = store.select(fromRoot.getSearchQuery).take(1);
this.books$ = store.select(fromRoot.getSearchResults);
this.loading$ = store.select(fromRoot.getSearchLoading);
}
在上面的代码中,store.select
仅在新结果与之前的结果不同时才会发出值。
如果新流与上一个流相同或不同,我怎样才能始终发出this.books$
?我必须使用哪种store
方法?
答案 0 :(得分:2)
您可以使用rxjs-operator map
- 它的工作方式与select
略有不同:
store.map(state => state.someAttribute.someSub);
虽然它是正确的,select
只会在所选项目发生变化时发出数据 - 问题是:您为什么需要更新?如果数据没有变化,则无需更新视图。