把异步函数放在生命周期函数里写,生命周期函数会变得越来越复杂,组件会变得越来越大。Redux默认只处理同步,借助redux-thunk ,可以把异步请求放在actionCreators.js里管理,而且有利于自动化测试。中间件指的是是action 与store的中间,是redux的中间件,它使得我们可以在action中写函数(返回函数)
安装依赖
npm install redux-thunk --save
src文件下的store文件夹
index.js
import { createStore, compose, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducer from './reducer';
// 配置react-tools使用
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer, composeEnhancers(
applyMiddleware(thunk)
));
export default store;
actionCreator.js
import axios from 'axios';
import { fromJS } from 'immutable';
export const getList = () => {
return (dispatch) => {
axios.get('/api/headerList.json').then