使用redux-thunk中间件实现ajax数据请求

1.安装npm install redux-thunk

npm install redux-thunk

2.引入redux-thiunk

  

import {createStore, applyMiddleware,compose} from 'redux';
import reducer from './reducer'
import thunk from 'redux-thunk';
//浏览器有redux插件,加这句话可以进行调试  https://github.com/zalmoxisus/redux-devtools-extension
const composeEnhancers =
    window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) : compose;
const enhancer = composeEnhancers(
    applyMiddleware(thunk),
);

const store = createStore(
    reducer,
    enhancer
);
export default store

 demo

1)使用中间件(redux-thunk)的组件

componentDidMount () {
        const action = getTodoLlist()
        store.dispatch(action)
    }

2)actionCreator.js

export const getTodoLlist = () => {
    return () => {
        axios.post('/list.json').then((res)=>{
            console.log(res)
            const data = res.data;
            const action = initListAction(data)
            store.dispatch(action);
        })
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
redux-thunk是一个用于处理异步操作的Redux中间件。它允许我们在Redux中编写异步逻辑,并且可以在action creators中返回函数而不仅仅是一个普通的action对象。 使用redux-thunk,首先要安装它: ``` npm install redux-thunk ``` 然后,在创建store时将thunk作为middleware应用到Redux store中: ```javascript import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import rootReducer from './reducers'; const store = createStore(rootReducer, applyMiddleware(thunk)); ``` 接下来,你可以在action creators中返回一个函数,而不仅仅是一个普通的action对象。这个函数可以接收dispatch和getState作为参数,允许你执行异步操作并在适当的时机分发action。 例如,你可以创建一个异步的action creator来获取数据: ```javascript const fetchData = () => { return (dispatch, getState) => { dispatch({ type: 'FETCH_DATA_START' }); // 异步请求数据并处理响应 fetch('https://api.example.com/data') .then(response => response.json()) .then(data => { dispatch({ type: 'FETCH_DATA_SUCCESS', payload: data }); }) .catch(error => { dispatch({ type: 'FETCH_DATA_FAILURE', payload: error }); }); }; }; ``` 在上面的例子中,我们返回了一个函数,该函数接收dispatch和getState作为参数。在函数体内,我们可以执行异步操作(例如发起网络请求),并在适当的情况下分发相应的action。 使用redux-thunk,你的action creators可以更灵活地处理异步逻辑,并且能够与Redux无缝地集成。希望这个回答对你有帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值