useMakeRequest.js 583 B

1234567891011121314151617181920212223242526
  1. import { useState, useEffect } from "react";
  2. const useMakeRequest = (endpoint) => {
  3. const [result, setResult] = useState({
  4. data: null,
  5. error: null,
  6. });
  7. useEffect(() => {
  8. const asyncFunc = async () => {
  9. try {
  10. const response = await fetch(endpoint);
  11. const json = await response.json();
  12. setResult((old) => ({ ...old, data: json }));
  13. } catch (error) {
  14. setResult((old) => ({ ...old, error: new Error(error).message }));
  15. }
  16. };
  17. asyncFunc();
  18. }, [endpoint]);
  19. return result;
  20. };
  21. export default useMakeRequest;