这可能吗?
我在IoC环境中使用redux
存储,并希望在创建后将中间件添加到商店。
e.g:
class MyApp {
store = createStore(...);
}
let app = new MyApp();
// later on
import thunk from 'redux-thunk';
app.store.addEnhancer(thunk);
答案 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);
}