質問編集履歴
1
わからない部分に対しての追記と、参考コードを追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
applyMiddlewareのコードを見たのですが、わからないところがあります。
|
2
2
|
new Errorが入ったdispatchをmiddlewareAPIに入れて個々のミドルウェアに渡しているのですが、
|
3
3
|
例えばthunkなどはアクションにstore.dispatchを渡して、アクション内で実行させたりしていますが、
|
4
|
+
どうしてstore.dispatchが働くのかがわかりません。
|
5
|
+
どこでアクション関数内で働くdispatchにstore.dispatchに入れているのでしょうか?
|
6
|
+
|
4
|
-
|
7
|
+
基本的な認識が間違っているかもしれませんが、
|
5
8
|
よろしくお願いします。
|
6
9
|
|
7
10
|
applyMiddleware.js
|
@@ -29,4 +32,24 @@
|
|
29
32
|
}
|
30
33
|
}
|
31
34
|
}
|
35
|
+
```
|
36
|
+
|
37
|
+
redux-thunk
|
38
|
+
```javascript
|
39
|
+
function createThunkMiddleware(extraArgument) {
|
40
|
+
// ここのdispatchはmiddlewareAPIから渡ってきたdispatchだと思いますが、
|
41
|
+
// エラーが入ってたと思うのですがちゃんと働きます。
|
42
|
+
return ({ dispatch, getState }) => next => action => {
|
43
|
+
if (typeof action === 'function') {
|
44
|
+
return action(dispatch, getState, extraArgument);
|
45
|
+
}
|
46
|
+
|
47
|
+
return next(action);
|
48
|
+
};
|
49
|
+
}
|
50
|
+
|
51
|
+
const thunk = createThunkMiddleware();
|
52
|
+
thunk.withExtraArgument = createThunkMiddleware;
|
53
|
+
|
54
|
+
export default thunk;
|
32
55
|
```
|