Javascript 在Reactjs中使用带有挂钩的map函数时出错
我正在尝试构建一个简单的新冠病毒追踪应用程序,但在使用map函数获取数据后,我收到以下错误:Javascript 在Reactjs中使用带有挂钩的map函数时出错,javascript,arrays,reactjs,react-hooks,Javascript,Arrays,Reactjs,React Hooks,我正在尝试构建一个简单的新冠病毒追踪应用程序,但在使用map函数获取数据后,我收到以下错误: Error : TypeError:countryData.map is not a function import React,{useState,useffect}来自“React”; 从“@material ui/core”导入{NativeSelect,FormControl}; 导出常数CountriesData=()=>{ const[countryData,setCountryData
Error : TypeError:countryData.map is not a function
import React,{useState,useffect}来自“React”;
从“@material ui/core”导入{NativeSelect,FormControl};
导出常数CountriesData=()=>{
const[countryData,setCountryData]=useState([]);
const[isLoaded,setLoading]=useState(false);
常量url=https://covid19.mathdro.id/api/countries';
useffect(()=>{
异步函数DataOfCountry(){
const data2=等待获取(url);
const maindat2=wait data2.json();
console.log(maindat2);
setCountryData(MainData2);
设置加载(真);
}
DataOfCountry();
},[setCountryData]);
如果(!已加载){
返回装载。。。;
}
返回(
全球的
{countryData.map((国家,i)=>(
{国家}{'}
))}
);
};
这是因为返回的数据是对象,而不是数组。你不需要转换它;获取的数据的countries
属性是一个国家数组,因此您需要使用该属性更新您的状态:
import React,{useState,useffect}来自“React”;
从“@material ui/core”导入{NativeSelect,FormControl};
导出常数CountriesData=()=>{
const[countries,setCountries]=useState([]);
const[isLoaded,setLoading]=useState(false);
常量url=https://covid19.mathdro.id/api/countries';
useffect(()=>{
异步函数fetchCountries(){
const response=等待获取(url);
const data=wait response.json();
//你应该处理错误!
setCountries(data.countries);
设置加载(真);
}
国家();
},[SET国家];
如果(!已加载){
返回装载。。。;
}
返回(
全球的
{国家地图((国家)=>(
{country.name}
))}
);
};
是否检查了maindat2
的值?它可能不是数组,而是对象。看起来您的基本URL不正确,应该是“”。由于您正在通过fetch call添加国家/地区。亲爱的兄弟@Sam Url工作正常。面对映射调用的问题亲爱的brother@ZsoltMeszaros我做了一些小改动,是的,它不是数组,而是一个对象..请帮助我如何将对象转换为数组。。