【发布时间】:2020-11-16 08:54:25
【问题描述】:
React.useEffect (() => {
if (rows.length === 0) {
async function fetchMyApi() {
const url = `https://reqres.in/api/users?page=2`;
let res = await fetch(url);
res = await res.json();
if (res) {
setRows (res.data);
}
}
fetchMyApi();
}
}, [rows]);
在 useEffect 中调用 API 会造成无限循环。我试过传递一个空数组,我尝试了所有可能的解决方案,但没有用。
【问题讨论】:
-
[rows]作为 useEffect 的第二个参数会导致它在每次更改 rows 变量时运行。我假设setRows(res.data);正在更新该值,这会导致您的循环。 -
我想将响应设置为 setRows ,可能的方式是什么,应该在页面加载时运行 api 调用
-
为什么api调用需要
rows.length === 0? -
我用 rows.length === 0 教过可能会停止重新渲染
标签: reactjs react-hooks