import { useState, useEffect, useCallback } from 'react'; import { createHook } from 'hookleton'; const URL = 'https://randomuser.me/api/?results=10'; const useFetchUsers = createHook(() => { const [users, setUsers] = useState({}); const [again, updater] = useState(); async function fetchData() { const response = await fetch(URL); const data = await response.json(); console.log('[useFetch]: Fetched 10 random users'); setUsers(data); } useEffect(() => { fetchData(); }, [again]); const fetchAgain = useCallback(() => updater(s => ~s), []); return [users, fetchAgain]; }); const Hookletons = () => { useFetchUsers.use(); return null; }; const RenderUser = ({ render }) => { const [data, fetchAgain] = useFetchUsers(); return (
|
|
|
|
|