Javascript Can';t显示从API获取的数据

Javascript Can';t显示从API获取的数据,javascript,reactjs,Javascript,Reactjs,我是一个新的反应者,我正在努力实践我在课程中学到的东西。我正在做一个带有OpenWeatherAPI的weatherapp。我得到了所有数据的响应,但当我试图显示它们时,它不起作用。你能给我一些建议吗 这是我的密码: import React,{useState,useffect}来自“React”; 导入“/App.css”; 从“./Weather”导入天气; 常量应用=()=>{ const[weather,setWeather]=useState([]); useffect(()=>{

我是一个新的反应者,我正在努力实践我在课程中学到的东西。我正在做一个带有OpenWeatherAPI的weatherapp。我得到了所有数据的响应,但当我试图显示它们时,它不起作用。你能给我一些建议吗

这是我的密码:

import React,{useState,useffect}来自“React”;
导入“/App.css”;
从“./Weather”导入天气;
常量应用=()=>{
const[weather,setWeather]=useState([]);
useffect(()=>{
getWeather();
}, []);
让lat;
让龙;
常量getWeather=()=>{
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(位置=>{
lon=位置坐标经度;
纬度=位置坐标纬度;
const APP_KEY=“e802333933a66ec7a7588d658785ad09”;
常量API=`https://api.openweathermap.org/data/2.5/forecast?lat=${lat}&lon=${lon}&cnt=5&APPID=${APP_KEY}`;
获取(API)
。然后(响应=>{
返回response.json();
})
。然后(数据=>{
setWeather(data.list);
控制台日志(setWeather);
})
});
}
}
返回(
{weather.map(w=>(
))}
);
}
导出默认应用程序

在看不到API返回的数据和不知道您的状态的情况下(请在问题中发布console.log输出),看起来您需要执行以下操作:

<Weather temperature={w.main} weather={w.weather.description}/>
您还可以在渲染函数中放置一个
console.log
,以查看您试图渲染的状态的形状

据我所知,在通过状态进行映射时,render方法会抛出错误,如下所示:

<Weather temperature={w.list.main}

您在控制台中看到了什么?可能是承诺中有错误。。。我有两个错误:Uncaught(承诺中的)TypeError:无法读取未定义的属性'main',Uncaught TypeError:无法读取未定义的属性'main',你可能在你的问题中提到过……我会试试这个,它说weather.map不是一个函数,我从map中得到了安慰,这让我从api中得到结果{dt:1582459200,主:{…},天气:数组(1),云:{…},风:{…},}dt:1582459200主:{temp:278.87,感觉像是:272.44,temp\u min:278.83,temp\u max:278.87,气压:1018,}天气:{…}云:{all:100}风:{速度:6.63,度:290雨:{3h:0.19}系统:{txt:{12:00:02}proto:Object App.js:42好了:
w.main
。现在你知道如何在将来检查这些东西了。如果我的答案对你有帮助,请随意接受。
<Weather temperature={w.list.main}
{
  weather.map(w => {
    console.log(w)
    return <Weather temperature={w.list.main} weather={w.list.weather.description}/>
  })
}