2017-06-21 88 views
0

我有一个ngrx存储的问题,一个奇怪的问题! 的选择操作不会调用回调函数,当我订阅了商店,我可以看到应用程序的状态(初始状态和修改后的状态)Ngrx选择运算符不起作用

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

要小心这样的设置。

为此,nrgx具有createSelector方法。您应该使用该选项为您希望稍后通过store.select(whateverSelector)使用的部分存储创建选择器。请记住,store.select并不直接选择商店的某些部分,而是实际经过createSelector返回的选择器(它处理将商店的部分转换为Observbles)。

1

因为你观察到的(选择的结果)很冷,没有订阅它。

尝试:

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

如果使用可观察到的一个观点,就足够了,你把它管道异步管和订阅变得多余。