redux里面applyMiddleware这个高阶函数为什么要分3次执行,明明2次就够了。
上图,这个是github的源码,第一次return可以理解,是为了用户传入中间件(middlewares)。
第二次return是为了接收createStore,第三次是为了接收reducer和state。
简化之后是这样
const applyMiddleware = (...middlewares) => (createStore) => (reducer, state) => {}
但是第二第三次明明可以整合成一个的
applyMiddleware = (...middlewares) => (createStore, reducer, state) => {}
而且它在createStore内部调用是这样的
简化之后是这样
enhancer(createStore)(reducer, state)
完全可以只执行一次的:enhancer(createStore,reducer, state);
请问有大牛知道为什么吗,这是出于什么考虑。不惜增加函数的复杂性
网友评论