【发布时间】:2021-06-20 03:45:47
【问题描述】:
我正在从一个模仿 API 的 JS 文件中获取数据,并有几个充当端点的方法,我在控制台日志时获取数据,但我无法理解为什么会出现无限循环使用挂钩时。是的,我搜索过类似的问题,但还是不明白。
import React, { useEffect, useState } from "react";
import { api } from "../api/api.min.js";
// import axios from "axios";
function NonsenseComponent() {
const [data, setData] = useState();
console.log(data);
// function getItems(items) {
// // console.log(items, " items finns");
// setData(items);
// }
// console.log("darn");
const x = api.XMLHttpRequest();
x.onreadystatechange = function () {
if (x.readyState == 4 && x.status == 200) {
var item = JSON.parse(this.responseText);
var items = []; // init array to store contacts
for (var i = 0; i < item.length; i++) {
items.push({
date: item[i].date,
text: item[i].text,
id: item[i].id,
});
}
// setData(items);
}
};
x.open("GET", "/getitems", true);
x.send();
useEffect(() => {
// setData({});
}, []);
return (
<div>
{/* {data.map((item) => (
<ul key={item[0].id}>
<li>{item[0].date}</li>
</ul>
))} */}
</div>
);
}
export default NonsenseComponent;
【问题讨论】:
-
你应该在
useEffect中运行你的副作用(调用api)
标签: javascript reactjs react-hooks infinite-loop