我有一个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;
}
答案 0 :(得分:2)
小心那样的设置。
为此,nrgx具有createSelector方法。您应该使用那个为稍后要通过store.select(whateverSelector)使用的商店部分创建选择器。
请记住,store.select不会直接选择商店的某些部分,但实际上会通过createSelector返回的选择器(处理将商店的部分转换为Observbles)。
答案 1 :(得分:1)
因为你的observable(select的结果)很冷,所以没有订阅它。
尝试:
this.store.select(mapToDataToSources).subscribe(); // added .subscribe()
如果在视图中使用observable,只需通过异步管道管道就可以了,订阅就变得多余了。