开发者问题收集

未捕获的类型错误:无法读取未定义的属性(读取“dailyconfirmed”)

2022-04-14
468

我的代码有什么问题?在页面重新加载后访问 mydata.daily confirmed 时出现错误?

const[state,setState]=useState({});
async function getApiIndia1(){
   const temp=await fetch('https://data.covid19india.org/data.json')
   const mydata=await temp.json();
   setState(mydata)
}
useEffect(() => {
    getApiIndia1();
}, [])
2个回答

您无法在 getApiIndia1 之外访问 mydata (我假设您正在尝试这样做)。它仅在该块中定义,这就是您使用 state 的原因(本质上是为了全局保存所需的数据)。找不到 mydata,这就是它抛出错误的原因。 您应该做的是访问 state ,这是您存储该数据的地方。

但这仍然会抛出未定义的错误。这是因为先前的答案已经强调过这个问题。您需要访问 state.cases_time_series.dailyconfirmed 。这应该会为您提供所需的数据。

仔细检查 API 响应始终是一个好主意。;)

princess_hacker
2022-04-14

更新 setState

setState(mydata.cases_time_series)

当您希望查找 dailyconfirmed 时,循环遍历您的状态,它基本上是一个对象数组。

state.map((dailyconf)=>{
if(dailyconf?.dailyconfirmed) console.log(dailyconf?.dailyconfirmed)
})
Ritik Banger
2022-04-14