自定义Hooks网络请求

简介: 自定义Hooks网络请求

/**

  • @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};

}

目录
相关文章
|
2天前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
|
3天前
|
监控 网络协议 数据安全/隐私保护
运用自定义协议设计与实现“跨网络计算器”
运用自定义协议设计与实现“跨网络计算器”
24 3
|
8月前
|
网络协议 应用服务中间件 nginx
容器的自定义网络
本实验介绍了如何在容器中创建和使用自定义网络
236 0
|
4月前
|
前端开发
elementui-upload组件自定义样式上传(upload中常用的属性,但是网络上却找不到教程)(解决bug删除之后再次上传会上传删除的图片)专注后端工程师的前端速成
elementui-upload组件自定义样式上传(upload中常用的属性,但是网络上却找不到教程)(解决bug删除之后再次上传会上传删除的图片)专注后端工程师的前端速成
76 0
|
9月前
|
负载均衡 安全 Linux
【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
336 0
|
Docker 容器
Docker | 自定义网络(网关、子网地址)
Docker | 自定义网络(网关、子网地址)
819 0
Docker | 自定义网络(网关、子网地址)
|
12月前
|
域名解析 存储 缓存
网络基础之应用层协议,组织方式,自定义协议和http协议https协议简单介绍(2)
我们在之前的文章里讲过,应用层是应用在各个程序之间的数据沟通,其实应用层协议是面向程序员的,因为这些协议都是程序员写的,是方便程序员在编写程序时完成各个应用程序之间的沟通
75 0
网络基础之应用层协议,组织方式,自定义协议和http协议https协议简单介绍(2)
|
12月前
|
JSON 移动开发 网络协议
网络基础之应用层协议,组织方式,自定义协议和http协议https协议简单介绍(1)
我们在之前的文章里讲过,应用层是应用在各个程序之间的数据沟通,其实应用层协议是面向程序员的,因为这些协议都是程序员写的,是方便程序员在编写程序时完成各个应用程序之间的沟通
109 0
网络基础之应用层协议,组织方式,自定义协议和http协议https协议简单介绍(1)
|
存储 JSON 安全
electron如何自定义目录,修改文件名保存下载的网络文件
很多同学觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage无法做到,原因就是区别1。
electron如何自定义目录,修改文件名保存下载的网络文件
|
机器学习/深度学习 自然语言处理 API
使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)
使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)
288 0
使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)