zoukankan      html  css  js  c++  java
  • react hook axios loading 合并多次弹出

    多接口请求时,要加个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]; };
  • 相关阅读:
    php 字符串
    iOS copy&mutableCopy理解
    Swift学习(二)
    Swift 学习一函数&函数属性&懒加载
    LICEcap GIF 屏幕录制工具
    UIApplication介绍
    进度条渐变色
    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    DedeCms 5.7友情链接模块注入漏洞
    phpcms v9会员中心文件上传漏洞
  • 原文地址:https://www.cnblogs.com/szatpig/p/14713428.html
Copyright © 2011-2022 走看看