当前位置: 首页 > news >正文

自定义hook之首页数据请求动作封装 hooks

本例子实现了自定义hook之首页数据请求动作封装 hooks,具体代码如下

export type OrganData = {dis: Array<{ disease: string; id: number }>;is_delete: number;name: string;organ_id: number;parent_id: number;sort: number;
};
export type SwiperData = {id: string;module1_id: string;module2_id: string;title: string;sort: string;has_app_header: string;url: string;content: string;litpic: string;posttime: string;status: string;weapp_url: string;
};
export interface ResponseType<T> {code: number;msg: string;data?: T;runtime?: number;
}
import { useEffect, useState } from 'react';
import { useToast } from 'taro-hooks';
import Apis from '../services';export enum FetchType {Swiper, // 首页swiper 数据Nav, // 首页nav 数据
}/*** 首页数据请求动作封装 hooks* @param type 请求类型* @returns*/
const useFetchData = (type: FetchType) => {const [data, setData] = useState([]);const [showToast] = useToast();useEffect(() => {const fetchData = async () => {let res;if (type === FetchType.Swiper) {res = (await Apis.fetchSwiperData()) as ResponseType<SwiperData[]>;}if (type === FetchType.Nav) {res = (await Apis.fetchOrganData()) as ResponseType<OrganData[]>;}if (res?.code === 200) {setData(res?.data);} else {showToast({ title: res?.msg });}};fetchData();}, [showToast, type]);return [data];
};export default useFetchData;
http://www.lryc.cn/news/123761.html

相关文章:

  • 2023上半年京东手机行业品牌销售排行榜(京东数据平台)
  • lodash之cloneDeep()源码阅读笔记
  • 算法模版,今天开始背
  • 新的 Python URL 解析漏洞可能导致命令执行攻击
  • react项目做的h5页面加载缓慢优化(3s优化到0.6s)
  • 如何修复损坏的DOC和DOCX格式Word文件?
  • UI设计师个人工作感悟5篇
  • Java堆、栈、内存的知识
  • tp6 RabbitMQ
  • java Spring Boot yml多环境拆分文件管理优化
  • 【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • 【LeetCode每日一题】——41.缺失的第一个正数
  • typedef函数代码段解释以及部分Windows下的系统函数
  • Typora常用手册
  • 互联网发展历程:从网线不够长到中继器的引入
  • 【Java】异常处理 之 使用SLF4J 和 Logback
  • C++11并发与多线程笔记 (1)
  • 07_Hudi案例实战、Flink CDC 实时数据采集、Presto、FineBI 报表可视化等
  • ceph相关概念和部署
  • Android Jetpack Compose 中的分页与缓存展示
  • 无名管道 / 有名管道(FIFO)
  • Three.js纹理贴图
  • 1+X Web前端开发职业技能等级证书建设方案
  • Rx.NET in Action 第二章学习笔记
  • 【软件工程 | 模块耦合】什么是模块耦合及分类
  • OCT介绍和分类
  • 07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)
  • SpringBoot复习:(41)配置文件中配置的server开头的属性是怎么配置到Servlet容器中起作用的?
  • 深入解读网络协议:原理与重要概念
  • O型圈不同类型的应用指南