Reactjs 我能';t使用map函数React.js获取要渲染的API数据

Reactjs 我能';t使用map函数React.js获取要渲染的API数据,reactjs,Reactjs,API没有呈现,它说this.state.weather.map不是函数。我需要帮助,我尝试了不同的映射方法,但没有改变结果。有什么反馈吗 从“React”导入React; 从“axios”导入axios; 导出默认类Weather.Component{ 建造师(道具){ 超级(道具) 此.state={ 天气:[] } } 异步组件didmount(){ axios.get(“http://api.weatherapi.com/v1/current.json?key=?=nyc)然后(res

API没有呈现,它说this.state.weather.map不是函数。我需要帮助,我尝试了不同的映射方法,但没有改变结果。有什么反馈吗

从“React”导入React;
从“axios”导入axios;
导出默认类Weather.Component{
建造师(道具){
超级(道具)
此.state={
天气:[]
}
}
异步组件didmount(){
axios.get(“http://api.weatherapi.com/v1/current.json?key=?=nyc)然后(res=>{
控制台日志(res);
this.setState({weather:res.data})
});
}
渲染器(){
this.state.weather.map(weather=>{
返回(
{weather.location.name}

) }) } 渲染(){ 返回( {this.renderWeather()} ) } }
renderWeather(){
返回此.state.weather.map(weather=>{
返回(
{weather.location.name}

) }) }
您错过了renderWeather函数中的return语句,上面的代码段适合您

API返回JSON

this.setState ({weather: res.data})
检查res.data的类型。Is可能不是数组而是对象,因此this.state.weather.map不是函数,因为array.map()是数组方法


请确保将状态正确设置为数组,它应该可以正常工作。

您需要从函数返回地图。我尝试返回地图,但它仍然显示相同的错误-我尝试返回地图,但它仍然显示相同的错误-this.state.weather.map不是函数。我想知道还有什么可以用?感谢检查API响应,它应该以数组格式返回数据。API作为对象数组记录在控制台中,仍然不工作。未处理的拒绝(TypeError):this.state.weather.map不是函数。这正是我现在得到的错误消息。console.log(this.state.weather);在返回语句并检查其格式之前,它必须是数组格式是的,您是对的。我刚刚检查了它返回的对象,知道如何将其更改为数组吗?谢谢大家。您可以使用Object.values()获取对象中所有值的数组。检查MDN上的文档。根据您想对数据执行的操作,您可能还想签出Object.keys()或Object.entries()。我将代码更改为this.setState([{weather:Object.entries(res.data)}]),但它仍然无法完全转换为数组,我还尝试了Object.key和Object.values,但仍然无法工作。这是我使用lol时遇到的最难的API。但是我至少能够在控制台中使它看起来像这样-0:(2)[“data”,{…}]
this.setState ({weather: res.data})