美文网首页React
自定义Hooks网络请求

自定义Hooks网络请求

作者: RemenberMe | 来源:发表于2020-12-14 11:51 被阅读0次
    
    /**
     * @Auther: 1580043700@qq.com
     * @Date: 2020/12/3 14:19
     * @Description: 自定义Hooks网络请求,
     */
    import {useEffect, useState} from 'react';
    
    /**
     * 自定义Hooks网络请求,
     * @param promise ajax请求
     * @returns {{data: object|number|boolean|string, loading: boolean, error: string}}
     */
    export default function useRequest(promise, params = {}) {
        let [loading, setLoading] = useState(false);
        let [data, setData] = useState({});
        let [error, setError] = useState('');
    
        useEffect(() => {
            setError('');
            setLoading(true);
    
            promise(params)
                .then(({payload}) => {
                    setLoading(false);
                    setData(payload);
                })
                .catch((err) => {
                    setLoading(false);
                    setError(err?.msg || `服务器异常,请稍后重试,code:${err.code}`);
                    // 这里可以放一个toast提示
                    console.error('请求失败', err);
                });
        }, [params]);
    
        return {data, loading, error};
    }
    
    
    
    

    相关文章

      网友评论

        本文标题:自定义Hooks网络请求

        本文链接:https://www.haomeiwen.com/subject/inkvgktx.html