2016-07-07 7 views
5

これは可能ですか?createStore()後にreduxストアにエンハンサーを追加

私は、IoC環境にreduxストアを使用しており、ミドルウェアを作成した後にそのストアにミドルウェアを追加したいと考えています。

例えば:

class MyApp { 
    store = createStore(...); 
} 

let app = new MyApp(); 

// later on 
import thunk from 'redux-thunk'; 
app.store.addEnhancer(thunk); 
+0

これはなぜ必要なのでしょうか?後でミドルウェアを追加すると、ストアとアップデートの予測が難しくなる可能性があります。あなたのユースケースは何ですか? –

+0

これは別の方法で行われます。 'redux'はトップダウンで、アプリケーションは使用するモジュールを決定します。私が取り組んでいるのはIoC /プラグインベースなので、ロジック全体が分散されています。だから私はこれを行う必要があります。 – unional

答えて

2

私はこれを行うための機能を作成しました。 reduxがこれが貴重だと思うなら、私はPRをすることができます。

これは私のモジュールに合わせたコードです。 PRへの実際の追加は少し違って見えます。

addMiddleware(middleware: Middleware) { 
    const middlewareAPI: MiddlewareAPI<any> = { 
    getState: this.getState, 
    dispatch: (action) => this.dispatch(action) 
    }; 

    this.dispatch = compose(middleware(middlewareAPI))(this.dispatch); 
} 
関連する問題