[英]How do i iterate over JSON data in React
我正在嘗試做的事情:在反應中獲取數據進行一些練習,並且我使用了 covid19 api 以及案例數量等...
這是代碼:
import { useState, useEffect } from "react";
import axios from "axios";
const Home = () => {
const [data, setData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const result = await axios("api_here",);
setData([result.data]);
};
fetchData();
}, [])
console.log(data);//i have a screen-shot below for the output
return (
<ul>
{data.map((items, index) => (
<li key={index}>{JSON.stringify(items)}</li>
//<li key={index}>{items}</li> This doesn't work
))}
</ul>
)} export default Home;
並且 data.map 僅在 json[0] 上進行迭代,但我需要從 json 遍歷每個國家/地區。
我嘗試做類似的事情:
setData([result.data][0])
//or
data[0].map......
但不起作用
您的數據是鍵 -> 值的 map 以便遍歷所有國家/地區(鍵)。
<ul>
{Object.keys(data).map((key, index) => (
<li key={index}>{JSON.stringify(data[key])}</li>
))}
</ul>
您可以將對象的 Object 轉換為對象數組。
import { useState, useEffect } from "react";
import axios from "axios";
const Home = () => {
const [data, setData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const result = await axios("api_here",);
let res = [result.data];
res = Object.entries(res[0]).map((e) => ( { [e[0]]: e[1] } ));
setData(res);
};
fetchData();
}, [])
console.log(data);
return (
<ul>
{data.map((items, index) => (
<li key={index}>{JSON.stringify(items)}</li>
//<li key={index}>{items}</li> This doesn't work
))}
</ul>
)} export default Home;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.