2017-03-10 4 views
1

redux docs状態では、ストアがオブザーバブルであり、それを購読できます。誰もが 'スロットル'などの購読を保存する演算子を追加する方法を知っていますか?rxjs演算子をreduxストアサブスクリプションに追加する

import 'rxjs/add/operator/throttle' 

これが正常に動作します:

store 
    .subscribe(() => saveStateToLocalStorage(store.getState())) 

これにはない:

store 
    .throttle(1000) 
    .subscribe(() => saveStateToLocalStorage(store.getState())) 

答えて

2

実際、Reduxのストアが観測可能であるが、それはRxJsに基づいていません。 あなたはネイティブにそのようなことをすることはできません。

ngrxで角度(v2 ou +)を使用している場合、店舗であり、RxJの上に観測可能なように作成されています。

あなたがngrx使用していない場合、あなたはこのReduxの-観測可能に見てみる必要があります。ここではhttps://github.com/redux-observable/redux-observable

+0

Reduxの-に観察が良いですあなたがすでにrxjsを知っているならば、選択してください。とにかく、このような副作用をするためにはミドルウェアが必要です。より一般的なものは、redux-thunkやredux-sagaです – OlliM

0

がRxJS 5を使用したソリューションですが:

const subject = new Rx.Subject().throttle(1000) 

subject.subscribe(() => { 
    saveStateToLocalStorage(store.getState()) 
}) 

store.subscribe(() => { 
    subject.next() 
}) 
関連する問題