【发布时间】:2021-03-11 18:05:58
【问题描述】:
【问题讨论】:
【问题讨论】:
试试这个
fetch('http://localhost:5000/user')
.then(response => response.json())
.then(data => setItems(data));
您需要将响应转换为 JSON 数组才能对其进行映射
【讨论】:
在您遍历您的响应之前,您必须检查项目是否有价值,
代码在前端呈现的方式是,它会尝试执行你的 jsx,当 useEffect 得到响应时,它会重新呈现屏幕。
如果您仔细查看控制台日志,在第一次渲染时它是空的,然后它有记录值。
解决方案是在循环之前添加 AND 条件,如下所示
{items.length > 0 && items.map(item....
【讨论】:
您可以从您的console.log 中看到response 不是一个数组,而是一个完整的HTTP 响应对象。如果您查看response.data,您会及时看到它是一个缓冲区,因为响应将作为流到达。您需要收集完整的响应并将其解析为 JSON,然后才能使用它。
查看this documentation 了解如何做到这一点。
【讨论】: