это мой код:
function Users() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(false);
useEffect(() => {
const getUsersData = async () => {
setLoading(true);
const response = await fetch('https://api.github.com/users');
const data = await response.json();
setUsers([...data]);
setLoading(false);
}
getUsersData();
}, [users])
return (
<div className="container my-4">
<div className="row">
{loading ? (
<p>loading...</p>
) : (
users.map((user) => <UserItem key={user.id} user={user}/>)
)}
</div>
</div>
)
}
после setUsers, setLoading (false) не работает.
в инструментах разработчика chrome, состояние загрузки по-прежнему "true", не " false ".
, если я использую его двойной setLoading (false), состояние загрузки теперь равно" false ". вот так:
useEffect(() => {
const getUsersData = async () => {
setLoading(true);
const response = await fetch('https://api.github.com/users');
const data = await response.json();
setUsers([...data]);
setLoading(false);
setLoading(false);
}
getUsersData();
}, [users])
почему 1 setLoading не работает, а 2 setLoading работает?