2017-06-21 92 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() 

如果使用可觀察到的一個觀點,就足夠了,你把它管道異步管和訂閱變得多餘。