useFetch
A hook for making HTTP requests and managing the associated states. It provides loading, error, and success states along with the fetched data.
Parameters
url:string- The URL to fetch data fromreqOpt?:RequestInit- Optional request options (headers, method, etc.)
Returns
data:Data | undefined- The fetched data if successfulerror:Error | undefined- Error information if the request failedisLoading:boolean- Whether the request is in progressisError:boolean- Whether the request resulted in an errorisSuccess:boolean- Whether the request was successfulrefetch:() => void- Function to manually trigger a new fetch
Usage
import { useFetch } from '@rhinolabs/react-hooks';
function UserProfile() {
const {
data,
error,
isLoading,
isError,
isSuccess,
refetch
} = useFetch('https://api.example.com/user');
if (isLoading) {
return <div>Loading...</div>;
}
if (isError) {
return (
<div>
Error: {error?.message}
<button onClick={refetch}>Retry</button>
</div>
);
}
return (
<div>
{isSuccess && data && (
<>
<h1>{data.name}</h1>
<p>{data.email}</p>
</>
)}
</div>
);
}Notes
- Automatically fetches data on mount
- Provides manual refetch capability
- Handles JSON responses automatically
- Manages all common request states
- Supports custom request options
- Returns undefined data on error
- Success is based on HTTP 200 status
Last updated on