Ngrx select 运算符不起作用

Ngrx select operator does not work

我的ngrx store有问题,奇怪的问题! select 操作符不调用回调函数,当我订阅商店时,我可以看到应用程序的状态(初始状态和修改后的状态)

export class PatternsViewComponent implements OnInit {
  patternsCategoryList$:Observable<string[]>;
  // selectedPatternCategory$:Observable<string>;

  constructor(private store: Store<ApplicationState>) {
    this.store.select(mapToDataToSources);
  }
  ngOnInit() {
  }

}
export function mapToDataToSources(state:ApplicationState) :String[]{
  debugger;
  console.log(state.uiStoreData.patterns);
  return state.uiStoreData.patterns;
}

因为您的 observable(select 的结果)是冷的,所以没有订阅它。

尝试:

this.store.select(mapToDataToSources).subscribe(); // added .subscribe()

如果您在视图中使用 observable,通过异步管道传输它就足够了,订阅变得多余。

小心这样的设置。

为此,nrgx 具有 createSelector 方法。您应该使用它来创建 selectors 以供稍后通过 store.select(whateverSelector) 使用的部分商店使用。

请记住,store.select 不会直接 ​​select 商店的某些部分,而是实际上会通过 select 或者 createSelector returns(处理转换部分商店进入 Observbles)。