2017-08-27 10 views
0

私は現在、angular2に慣れていません。現在、@ ngrx/storeとsubscribeクラスを使ってプロジェクトを進めています。私はマップメソッドが混乱しているが、購読ストアが動作している間は動作していません。いつマップや購読方法を使用するのか理解してください。コードは以下の通りです。mapと@ ngrx/storeのサブスクライブ

this.store.select('rating').subscribe(({ topPicks }) => { // code is working }); 
this.store.select('rating').map(({ topPicks }) => // not working); 
+0

マップ操作は入力として関数を取り、この関数をソースObservableによって生成された各値に適用し、その結果の値をObservableとして出力します。あなたが観測によって放出される項目を参照するには、または観察可能で、エラーまたは完了通知を受信するために観察者にとってそのobservers.In順に観測可能に接続されているサブスクライブの場合 は、それは最初にその観察可能に登録する必要がありますこの演算子。 Subscribeオペレータの典型的な実装では、1つから3つのメソッドを受け入れることができます –

答えて

0

ここからわかるとおり、this.store.select('rating')はObservableです。観測値が高温か寒いかによって異なります(詳細はこのblogを参照してください)。あなたのケースでは、最初の声明は観察可能なものを購読しているために働きます。 Mapは、observableによって発行された値に対してその値を使用できる演算子です(サブスクライバとしては機能しません)。

Observableのサブスクライバが存在しないため、2番目の文は機能しません。マップ演算子を使用するには、以下のように行うことができます。

this.store.select('rating').map(/* Do whatever you want to with the emitted values here */).subscribe(({ topPicks }) => {}); 

の演算子についての詳細を知るためには、あなたはdocumentationを見てすることができます。

関連する問題