React-redux-thunk

redux-thunk

redux-promise

安装

npm i --save redux-thunk

引入

import ReduxThunk from 'redux-promise'

store.js

import {createStore,applyMiddleware} from 'redux'
const reducer = ()=>{
    ....
}
const store = createStore(reducer,applyMiddleware(ReduxThunk))

组件.js

import React,{Component} from 'react'
import store from '.....'

class App extends Component {
    actionCreator = ()=>{
        return dispatch =>{  //返回一个函数,并传了一个dispath函数到回调函数的形参中
            axios....then(res=>{
                dispatch(...) //就可以在任意自己想return的地方运行dispatch函数
            })
        }
    }
    componentWillMount(){
        if(store.getState().xxxx.length===0){
            //  store.dispath只能接受一个普通对象
            store.dispatch(this.actionCreator())
        }else{
               this.setState({
                xxx:store.getState().xxxx
            })
        }
        //要抓第一次redux改变的的时候,因此要订阅一下
        this.unsub = store.subscribe({
            this.setState({
                ...:store.getState().xxxx
            })
        })
    }
    render () {
        return (
            <div></div>
        )
    }
}