0
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: (...args) => dispatch(...args) // why not just use `dispatch: dispatch`
}
chain = middlewares.map(middleware => middleware(middlewareAPI))
dispatch = compose(...chain)(store.dispatch)
return {
...store,
dispatch
}
}
}
誰もが私に違いを見分けることができますか?ありがとう。
最初のコードを実行してエラーが発生しましたか? –
ミドルウェアで 'dispatch'を使うと' dispatch'はミドルウェアチェーンで 'dispatch'の代わりに元の' store.dispatch'を指しています。そのため、クロージャを使用して変数ディスパッチをポイントします。 –