export default function applyMiddleware(...middlewares) { return (createStore) => (reducer, preloadedState, enhancer) => { const store = createStore(reducer, preloadedState, enhancer) let dispatch = store.dispatch let chain = [] const middlewareAPI = { getState: store.getState, dispatch: (action) => dispatch(action) } chain = middlewares.map(middleware => middleware(middlewareAPI)) dispatch = compose(...chain)(store.dispatch) return { ...store, dispatch } }}這里參數(shù)為什么要用展開符? 使用的時候傳入的是數(shù)組,如:const middlewares = [ thunk, logger ]applyMiddleware(...middlewares)那這樣函數(shù)中 middlewares.map 的 middlewares豈不是 [[thunk, logger]]了么。PS: 奧。。明白了,同時支持applyMiddleware(thunk, logger)和applyMiddleware(...[thunk, logger])兩種方式調(diào)用。 大家忽略吧
applyMiddleware的參數(shù)為什么加展開符?
回首憶惘然
2018-10-18 14:10:11