import React from 'react';
import { useRequest } from 'ahooks';// 定义项目的接口interface Project { id: number; name: string; description: string; web_url: string;}// 获取GitLab项目列表的函数const fetchProjects = async (): Promise<Project[]> => { const response = await fetch('https://gitlab.example.com/api/v4/projects', { headers: { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN', }, }); if (!response.ok) { throw new Error('Failed to fetch projects'); } return response.json();};// 项目列表组件const ProjectList: React.FC = () => { const { data, error, loading } = useRequest(fetchProjects); if (loading) { return <div>Loading...</div>; } if (error) { return <div>Error: {error.message}</div>; } return ( <div> <h1>GitLab Projects</h1> <ul> {data?.map((project) => ( <li key={project.id}> <a href={project.web_url} target="_blank" rel="noopener noreferrer"> {project.name} </a> <p>{project.description}</p> </li> ))} </ul> </div> );};export default ProjectList;
import React from ‘react’;
import { useRequest } from ‘ahooks’;// 定义项目的接口interface Project { id: number; name: string; description: string; web_url: string;}// 获取GitLab项目列表的函数const fetchProjects = async (): Promise<Project[]> => { const response = await fetch(‘https://gitlab.example.com/api/v4/projects’, { headers: { ‘Authorization’: ‘Bearer YOUR_ACCESS_TOKEN’, }, }); if (!response.ok) { throw new Error(‘Failed to fetch projects’); } return response.json();};// 项目列表组件const ProjectList: React.FC = () => { const { data, error, loading } = useRequest(fetchProjects); if (loading) { return
Loading…
; } if (error) { return
Error: {error.message}
; } return (
GitLab Projects
- {data?.map((project) => (
- {project.name}
{project.description}
- ))}