Ngrx选择运算符不起作用

时间:2017-06-21 09:17:12

标签: angular ngrx ngrx-store

我有一个ngrx商店的问题,一个奇怪的问题! 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;
}

enter image description here

2 个答案:

答案 0 :(得分:2)

小心那样的设置。

为此,nrgx具有createSelector方法。您应该使用那个为稍后要通过store.select(whateverSelector)使用的商店部分创建选择器。

请记住,store.select不会直接选择商店的某些部分,但实际上会通过createSelector返回的选择器(处理将商店的部分转换为Observbles)。

答案 1 :(得分:1)

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

尝试:

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

如果在视图中使用observable,只需通过异步管道管道就可以了,订阅就变得多余了。