| import { useState, useEffect, useCallback } from 'react' |
| import { data } from 'react-router' |
| // type RequestFunction<T> = () => Promise<T> |
| type RequestFunction<T, P = any> = (params?: P) => Promise<T>; |
| interface UseApiResult<T> { |
| // export function useApi<T>( |
| // requestFn: RequestFunction<T>, |
| export function useApi<T, P = any>( |
| requestFn: RequestFunction<T, P>, // 接收参数 |
| const [data, setData] = useState<T | null>(null) |
| const [loading, setLoading] = useState(false) |
| const [error, setError] = useState<Error | null>(null) |
| const execute = useCallback(async (params?: P) => { // 添加参数 |
| const result = await requestFn(params);//传参 |
| return { data, loading, error, refresh: execute } |