javascript - 从 API 获取数据后如何在数组中渲染单个对象?
问题描述
我正在尝试从我生成的 JSON 数组中映射出单个驱动程序。但我似乎无法将其映射到列表或任何内容中。
JSON:
[{"driver_id":"0-ikkpyhyjg9","location":{"latitude":null,"longitude":null,"bearing":229}},{"driver_id":"1-fk8jgaw8m7m","location":{"latitude":null,"longitude":null,"bearing":306}},{"driver_id":"2-w93e6x4hj7n","location":{"latitude":null,"longitude":null,"bearing":353}}]
反应钩子:
useEffect(() => {
fetch('/api/drivers', {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Origin: 'http://localhost:3000',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST',
'Access-Control-Allow-Headers': 'Content-Type'
}
})
.then(response => response.json())
.then(
data => {
setIsLoading(true)
setDrivers(data.drivers)
console.log(data.drivers)
},
error => {
setIsLoading(true)
setError(error)
console.log(error.message)
}
)
}, [])
理想情况下,我希望能够在谷歌地图等界面上呈现为标记。
解决方案
你甚至不尝试渲染代码。它需要 areturn(...)
在最后,你把你的 html. 你应该这样做setDrivers(data)
,否则你进入一层太深(甚至不存在)。您的回报可能看起来像这样:
return (
<div>
{ drivers.map((driver) =>
<h2>{driver.driver_id}</h2>
{/* And whatever else you want to show */}
}
</div>
)
推荐阅读
- symfony - Doctrine - 与关联实体的验证
- reactjs - 有没有比 redux persist 更好的方法来为生产环境持久化 redux 状态数据
- python - 背包问题
- android - chekbox 总是检查 recyclerview 中的最后一项
- javascript - jsf和javascript确认对话框
- c# - 我应该在哪里再次将标志设置为 false?
- javascript - 满足条件时使用 setInterval 和 clearInterval 运行函数?
- c++ - 在没有 std::nothrow 的构造函数中克服 std::bad_alloc
- r - 如何将 predict() 用于 survreg 模型?
- python - 如何简单地将分号与 Python 中的字符串对齐?