Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Reactjs中使用带有挂钩的map函数时出错_Javascript_Arrays_Reactjs_React Hooks - Fatal编程技术网

Javascript 在Reactjs中使用带有挂钩的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

我正在尝试构建一个简单的新冠病毒追踪应用程序,但在使用map函数获取数据后,我收到以下错误:

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我做了一些小改动,是的,它不是数组,而是一个对象..请帮助我如何将对象转换为数组。。