javascript - 如何在 JSX 中使用对象渲染数组?
问题描述
在我点击一个“人”后,我从 api 请求数据。我得到的数据将说明“车辆”,数据包括具有车辆“名称”和“型号”字段的对象。
const [车辆,setVehicles] = useState([]);
useEffect(() => {
setVehicles([]);
const fetchVehicles = () => {
let result = [];
let personVehicle = person.vehicles;
personVehicle?.map((el) => {
return axios.get(el).then((response) => {
result.push({ name: response.data.name, model: response.data.model });
setVehicles(result);
});
});
};
fetchVehicles();
}, [person]);
如何呈现此异步数据?我应该如何以正确的方式循环它?
我需要像这样得到它:
<p>Name: {name from state}</p>
<p>Model: {model from state}</p>
解决方案
也许只是将您获取的数据添加到状态,然后将其作为 ul 映射?
import React from "react";
const App = () => {
useEffect(() => {
fetchVehicles();
}, []);
const fetchVehicles = () => {
axios.get("/api/vehicles").then((res) => {
const vehicles = res.data;
vehicles &&
vehicles.map((v) => {
setVehicles([...vehicles, { name: v.name, model: v.model }]);
});
});
};
return (
<div>
{vehicles ? (
<ul>
{vehicles.map((v) => {
return (
<li>
<p>{v.name}</p>
<p>{v.model}</p>
</li>
);
})}
</ul>
) : (
<p>no vehicles</p>
)}
</div>
);
};
export default App;
推荐阅读
- javascript - 如何制作删除按钮以从数组中删除书签?
- javascript - innerHTML 不会覆盖
- sql - 使用条件语句进行分区
- swift - 无法将“浮点”类型的值转换为预期的参数类型“绑定”
' 错误 Swift 5.2 - postgresql - 升级enterprisedb postgresl版本
- pytorch - 我们支持的最低 cuda 能力是 3.5
- r - 在 R 中重新排序李克特图
- python - 如何使用 BeautifulSoup 获取数据价格?
- python - 如果您在多核网格搜索中为 CV 拆分器提供随机种子,是否保证拆分在内核之间是相同的?
- java - 使用 Java API 的 TensorFlow 推理非常慢