UseDashboardData — prosty hook do Twojego dashboardu w React

UseDashboardData — prosty hook do Twojego dashboardu w React

UseDashboardData — prosty hook do Twojego dashboardu w React

Pracujesz nad panelem administracyjnym i ciągle powtarzasz to samo? Fetch, loader, error, reload… Nuda! Na szczęście jest useDashboardData, który zrobi całą brudną robotę za Ciebie.

Spójrz na przykład:

function useDashboardData(fetchDataFn) {
  const [data, setData] = useState([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  const reload = useCallback(async () => {
    setLoading(true); setError(null);
    try {
      setData(await fetchDataFn());
    } catch (e) {
      setError(e.message || "Coś poszło nie tak 😬");
    } finally {
      setLoading(false);
    }
  }, [fetchDataFn]);

  useEffect(() => { reload(); }, [reload]);
  return { data, loading, error, reload };
}

Jak używać?

Podajesz mu swoją funkcję getUsers i masz wszystko pod kontrolą:

function UserList() {
  const { data: users, loading, error, reload } = useDashboardData(getUsers);

  if (loading) return <p>Ładowanko...</p>;
  if (error) return <p>Błąd: {error}</p>;

  return (
    <>
      <button onClick={reload}>Odśwież</button>
      <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>
    </>
  );
}

I tyle! Teraz masz mniej kodu, mniej stresu i więcej czasu na kawę.

Inne z tej kategorii: Programowanie
Takie tam: www.marczuk.org

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *