【发布时间】:2020-04-14 10:11:42
【问题描述】:
我试图复制一个个人项目以在加载数据获取时设置 Spinner 加载器,但我之前遇到了另一个错误。
我正在阅读其他问题,例如 this one,为了避免 useEffect() 无限循环,我必须在末尾添加一个空数组,但它仍然不起作用。
这是我的代码,尽管添加了空数组,但它只是无限重新渲染。
src/components/Users.js
import React, { useState, useEffect, useContext } from "react";
import GlobalContext from "../context/Global/context";
export default () => {
const context = useContext(GlobalContext);
const [users, setUsers] = useState([]);
async function getUsers() {
context.setLoading(true);
const response = await fetch("https://jsonplaceholder.typicode.com/users");
if (response.ok) {
context.setLoading(false);
const data = await response.json();
setUsers(data);
} else {
console.error('Fetch error');
}
}
useEffect(() => {
getUsers();
}, []);
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
};
这是不工作的Sandbox,我不知道为什么会发生这种情况,感谢任何 cmet。
【问题讨论】:
-
嗨 Maramal,检查我的解决方案,如果有帮助,请告诉我。
标签: javascript reactjs react-hooks