(原创) Rudex 中 Async Call 终极解决方案 遇坑记(三) Store State 设置 apiCallsInProgress

本文详细记录了在Rudex框架下处理Async Call的终极解决方案,重点探讨了如何设置BEGIN_API_CALL action并在每个API调用前dispatch。同时,文章指出无需手动设置END_API_CALL action,系统会自动在调用成功时发送一个带有_SUCCESS后缀的action。通过监听BEGIN_API_CALL action并跟踪状态变化,可以实现对加载状态的精确控制,并在React组件中使用loading props来展示当前的请求状态。
摘要由CSDN通过智能技术生成

设置 BEGIN_API_CALL action.

import * as types from "./actionTypes";

export function beginApiCall() {
  return { type: types.BEGIN_API_CALL };
}

END_API_CALL action 不需要手动设置,因为每个 API call 都会自动发一个尾缀为 _SUCCESS 的 action. 

export function loadCourses() {
  return function(dispatch) {
    dispatch(beginApiCall());
    return courseApi
      .getCourses()
      .then(courses => {
        dispatch(loadCourseSuccess(courses));
      })
      .catch(error => {
        throw error;
      });
  };
}

在每一个 Thunk 里 API CALL 之前添加 dispatch(beginApiCall());

import * as types from "../actions/actionTypes";
import initialState from "./initialState";

function actionTypeEndsInSuccess(type) {
  return type.substring(type.length - 8) === "_SUCCESS&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值