首页 > 移动平台 > 详细

react hook axios loading 合并多次弹出

时间:2021-04-28 14:29:00      阅读:25      评论:0      收藏:0      [点我收藏+]

多接口请求时,要加个loading,以前做的是接口请求一次,loading加载,然后结束loading关闭,但是会出现打开,关闭又打开的情况,

产品经理需要弹出一次,最后一次请求完成才关闭,然后这样就只能通过计数完成,request时 加 1,response 时减1,大于0 loading, 等于0 关闭,
项目中用的是useHook

import { useState, useCallback, useMemo, useEffect } from "react";
import Axios from "axios";
const _axios = Axios.create({
baseURL: host,
timeout: 30000,
});

export const useLoadingHandler = () => { const [num, setNum] = useState(0); const inc = useCallback(() => setNum((i) => i + 1), [ setCounter, ]); // add const dec = useCallback(() => setNum((i) => i - 1), [ setCounter, ]); // minus const interceptors = useMemo( () => ({ request: (config: any) => (inc(), config), response: (response: any) => (dec(), response), error: (error: any) => (dec(), Promise.reject(error)), }), [inc, dec] ); useEffect(() => { const req = _axios.interceptors.request.use( interceptors.request, interceptors.error ); const res = _axios.interceptors.response.use( interceptors.response, interceptors.error ); return () => { _axios.interceptors.request.eject(req); _axios.interceptors.response.eject(res); }; }, [interceptors]); return [num > 0]; };

 

react hook axios loading 合并多次弹出

原文:https://www.cnblogs.com/szatpig/p/14713428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!