reactjs 错误-TypeError:无法读取未定义的属性“map”
2021-05-21
256
import React , {useState, useEffect} from 'react'
import styles from './Statewise.css';
const Statewise = () => {
const [data, setData]=useState([]);
const getCData = async () => {
const res = await fetch('https://api.covid19india.org/data.json');
const actualData = await res.json();
console.log(actualData.Statewise);
setData(actualData.Statewise);
}
useEffect(() => {
getCData();
}, [])
return (
<div className="bts">
<div className="container-fluid mt-5">
<div className="main-heading">
<h1 className="mb-5">
<span className="font-weight-bold">INDIA COVID 19 TRACKER</span>
</h1>
</div>
<div className="table-responsive">
<table className="table table-hover">
<thead className="thead-dark">
<tr>
<th>States</th>
<td>Confirmed</td>
<td>recovered</td>
<td>death</td>
<td>active</td>
<td>updated</td>
</tr>
</thead>
<tbody>
{
data.map((curElem) => {
return(
<tr key={curElem.id}>
<th>{curElem.state}</th>
<td>{curElem.Confirmed}</td>
<td>{curElem.recovered}</td>
<td>{curElem.deaths}</td>
<td>{curElem.active}</td>
<td>{curElem.lastupdatedtime}</td>
</tr>
)
})
}
</tbody>
</table>
</div>
</div>
</div>
)
}
export default Statewise;
无法从 api 中提取值。
- 我尝试过 data && data.map(... 这也不起作用。
- 我尝试过添加 load 和 error 方法,但 api id 中的主要数据也没有显示。 请提出解决方案。
2个回答
您的
actualData
不包含
Statewise
字段,但它包含
statewise
(查看两个字段中
s
的区别)
因此,要解决这个问题,只需将
Statewise
替换为
statewise
const getCData = async () => {
const res = await fetch('https://api.covid19india.org/data.json');
const actualData = await res.json();
setData(actualData.statewise);
}
Priyank Kachhela
2021-05-21
当您在 HTML 中使用
data
时,您可以创建一个条件语句以确保数据已加载。
例如:
{
data ? data.map((curElem) => {
return(
<tr key={curElem.id}>
<th>{curElem.state}</th>
<td>{curElem.Confirmed}</td>
<td>{curElem.recovered}</td>
<td>{curElem.deaths}</td>
<td>{curElem.active}</td>
<td>{curElem.lastupdatedtime}</td>
</tr>
)
: <p> No data available </p>
})
}
crg
2021-05-21