React useEffect
import { useState, useEffect } from "react";
function UserList() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
let cancelled = false;
async function loadUsers() {
const response = await fetch("/api/users");
const data = await response.json();
if (!cancelled) {
setUsers(data);
setLoading(false);
}
}
loadUsers();
return () => {
cancelled = true;
};
}, []);
if (loading) return <p>Loading...</p>;
return (
<ul>
{users.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
export default UserList;