Closed
Description
In applyMiddleware.js
:
export default function applyMiddleware(...middlewares) {
return (createStore) => (reducer, preloadedState, enhancer) => {
var store = createStore(reducer, preloadedState, enhancer)
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
}
}
}
I think we can simply pass dispatch
instead of wrapping it in a lambda:
export default function applyMiddleware(...middlewares) {
return (createStore) => (reducer, preloadedState, enhancer) => {
var store = createStore(reducer, preloadedState, enhancer)
var dispatch = store.dispatch
var chain = []
var middlewareAPI = {
getState: store.getState,
dispatch
}
chain = middlewares.map(middleware => middleware(middlewareAPI))
dispatch = compose(...chain)(store.dispatch)
return {
...store,
dispatch
}
}
}
The code above passes all the tests except for this one:
applyMiddleware › passes recursive dispatches through the middleware chain
expect(received).toEqual(expected)
Expected value to equal:
2
Received:
1
So here's my question: Is there any specific concern about the original version of middlewareAPI
? Or is it okay to improve it?
Metadata
Metadata
Assignees
Labels
No labels