在createStore()之后添加增强器到redux存储

时间:2016-07-07 08:05:21

标签: redux

这可能吗?

我在IoC环境中使用redux存储,并希望在创建后将中间件添加到商店。

e.g:

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

let app = new MyApp();

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

2 个答案:

答案 0 :(得分:3)

我创建了一个执行此操作的函数。如果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);
}

答案 1 :(得分:-1)

我能够从上面使用unional的代码,但我需要对其稍作更改以使其与2018 redux一起使用。

constructor(myMiddleware: myMiddleware) {
           this.addMiddleware(myMiddleware)
        }

addMiddleware(middleware: Middleware) {

  this.redux.dispatch = compose(applyMiddleware(middleware))(this.redux.dispatch);

 }