redux-thunk使用

引入中间件解决纯函数不能使用异步,其它函数的代码

*store.js*
import {applyMiddleware,createStore,compose} from 'redux'
import reducers from './reducers.js'
 import thunk from 'redux-thunk'
const composeEnhancers=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) : compose
 const enhancer=composeEnhancers(applyMiddleware(thunk))
const store =createStore(reducers,enhancer)
export default store

*actions.js*
import store//引入store
export const getListAction=(data)=>({type:GET_TODO_LIST,data:data})
export const getList=()=>{
	return ()=>{
		// thunk中间件,getListAction在getList间接使用并分发reducers,axios为非纯函数代码
		axios.get('https://douban.uieee.com/v2/book/search?q=虚构类&count=8').then(res=>{
			const data=res.data.books
			const action=getListAction(data)
			store.dispatch(action)
		}).catch(err=>{
			console.log(err)
		})
	}
}

*reducers.js*
 switch (action.type) {
    	case GET_TODO_LIST:
    		newState.data=action.data
    		return newState
    	default:
        break;
    }

*app组件*
import  getList from './actions'

//getToDoList为在组件中componentWillMount自定义的函数
getToDoList=()=>{
		 getList()()
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值