自定义hook实现获取接口请求状态

35 阅读1分钟
import { useState, useEffect } from 'react'

const useApi = (apiFunction) => {
    const [data, setData] = useState(null)
    const [loading, setLoading] = useState(null)
    const [error, setErrot] = useState(null)
    const fetchData = async () => {
         setLoading(true)
         try {
             const result = await apiFunction()
             setData(result)
         } catch(err) {
             setLoading(false)
             setError(err)
         }
    }
    useEffect(() => {
       fetchData()
    }, [fetchData])
    
    return {data, loading, error }
}