0

我的ngrx store有问题,奇怪的问题!select算子不调用回调函数,订阅store的时候可以看到app的状态(初始状态和修改状态)

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;
}

在此处输入图像描述

4

2 回答 2

2

小心这样的设置。

为此,nrgx 具有 createSelector 方法。您应该使用该选项为商店的某些部分创建选择器,以便稍后通过 store.select(whateverSelector) 使用这些选择器。

请记住,store.select 不会直接选择 store 的一部分,而是通过 createSelector 返回的选择器(它处理将 store 的一部分转换为 Observbles)。

于 2017-06-21T16:23:06.003 回答
1

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

尝试:

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

如果您在视图中使用可观察对象,则通过异步管道对其进行管道传输就足够了,并且订阅变得多余。

于 2017-06-21T10:25:55.447 回答