如何使用@ngrx store.select始终发出状态?

时间:2017-04-24 13:20:01

标签: angular redux ngrx

我从@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方法?

1 个答案:

答案 0 :(得分:2)

您可以使用rxjs-operator map - 它的工作方式与select略有不同:

store.map(state => state.someAttribute.someSub);

虽然它是正确的,select只会在所选项目发生变化时发出数据 - 问题是:您为什么需要更新?如果数据没有变化,则无需更新视图。