Skip to content

Commit 47a7d86

Browse files
committed
Pass dispatch to higher-order middleware and re-implement thunk
1 parent 7c65551 commit 47a7d86

File tree

4 files changed

+8
-12
lines changed

4 files changed

+8
-12
lines changed

src/Redux.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default class Redux {
88
// A shortcut notation to use the default dispatcher
99
dispatcher = createDispatcher(
1010
composeStores(dispatcher),
11-
getState => [thunkMiddleware(getState)]
11+
({ getState, dispatch }) => [thunkMiddleware(getState, dispatch)]
1212
);
1313
}
1414

src/createDispatcher.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default function createDispatcher(store, middlewares = []) {
1414
}
1515

1616
const finalMiddlewares = typeof middlewares === 'function' ?
17-
middlewares(getState) :
17+
middlewares({ getState, dispatch }) :
1818
middlewares;
1919

2020
return composeMiddleware(...finalMiddlewares, dispatch);

src/middleware/thunk.js

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
export default function thunkMiddleware(getState) {
2-
return (next) => {
3-
const recurse = (action) =>
4-
typeof action === 'function' ?
5-
action(recurse, getState) :
6-
next(action);
7-
8-
return recurse;
9-
};
1+
export default function thunkMiddleware(getState, dispatch) {
2+
return next => action =>
3+
typeof action === 'function' ?
4+
action(dispatch, getState) :
5+
next(action);
106
}

test/createDispatcher.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ describe('createDispatcher', () => {
1717
const dispatcher = createDispatcher(
1818
composeStores({ todoStore }),
1919
// we need this middleware to handle async actions
20-
getState => [thunkMiddleware(getState)]
20+
({ getState, dispatch }) => [thunkMiddleware(getState, dispatch)]
2121
);
2222

2323
expect(dispatcher).toBeA('function');

0 commit comments

Comments
 (0)