function compose(...funcs) {
return arg => funcs.reduceRight((composed, f) => f(composed), arg);
}
// 参数:传入中间件数组
function applyMiddleware(...middlewares) {
return (next) => (reducer, initialState) => {
var store = next(reducer, initialState);
var dispatch = store.dispatch;
var chain = [];
var middlewareAPI = {
getState: store.getState,
dispatch: (action) => dispatch(action)
};
chain = middlewares.map(middleware => middleware(middlewareAPI));
dispatch = compose(...chain)(store.dispatch);
return {
...store,
dispatch
};
};
}
redux添加中间件
最新推荐文章于 2023-08-19 20:47:18 发布