如何在react axios拦截器中全局显示“加载中”状态

尝试用了antd-mobile中的Toast,但我这个是PC网页端的,效果并没有加载出来。

import Axios from 'axios'

Axios.interceptors.request.use(function (config) {
  // 显示“加载中”状态
  const token = window.localStorage.token;
  if (token) {
     config.headers.Authorization = `token ${token}`
  }
  return config
}, function (error) {
  return Promise.reject(error);
});

Axios.interceptors.response.use(function (response) {
  // 隐藏“加载中”状态
  return response;
}, function (error) {
  return Promise.reject(error);
});
阅读 4.9k
3 个回答

拦截器里面的全局加载,需要考虑一个问题,那就是一个页面可能会有很多接口请求,如果像你这么写会造成loading闪烁或者一个接口完成后就loading结束 , 所以你需要设置一个全局变量统计一个接口数量, 当所有的接口返回的时候loading才消失

这个不应该放在axios拦截器里,应该在componentDidMount下用 Promise.all

新手上路,请多包涵

请问这个问题解决了吗??同求

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题