Redux-thunk で非同期にアクションを発行する
Action Creator の中で非同期処理がうまく書けない… Redux-thunk を使う
うまくいかない例
export const asyncMinus = num => {
setTimeout(() => {
return { type: "MINUS", payload: { num: num } };
}, 1000);
};index.js で redux-thunk を middleWare として適用する
import React from "react";
import { render } from "react-dom";
// store に middleWare を適用するための関数
// applyMiddleware を import する
import { createStore, applyMiddleware } from "redux";
import rootReducer from "./reducers";
import { Provider } from "react-redux";
import App from "./containers/App";
// redux-thunk
import thunk from "redux-thunk";
// 後々複数の middleWare を適用できるように配列に入れる
const middleWares = [thunk];
// createStore の第二引数に、
// applyMiddleware() を使って、middleWare を適用する
const store = createStore(rootReducer, applyMiddleware(...middleWares));
render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById("root")
);重要 関数を返すアクションクリエイターを作る
actions/index.js
コンポーネント、コネクトの修正
containers/App.js
components/App.js
Last updated