【发布时间】:2021-04-19 22:08:44
【问题描述】:
我的 axios api 调用有问题,我在同一个函数中使用 2 个 api,这两个 axios 调用单独运行良好,但是当我将它们结合起来时,我将在 Country 组件中遇到错误发布后,错误是(地图不是函数)
const onSerializeData = () => {
const serializedCountries = serializeCountries(selectedCountries, false);
//Print the Countries
console.log(
`Selected Countries: \n ${JSON.stringify(serializedCountries)}`
);
axios
.get(
`https://restcountries.eu/rest/v2/alpha/${
serializedCountries[serializedCountries.length - 1]
}`
)
.then((responose) => {
const CouAllData = responose.data;
console.log("CouAllData", CouAllData);
setCountryAllData([...CountryAllData, CouAllData]);
})
.catch((error) => {
console.log("Error", error);
});
axios
.get(
`https://corona-api.com/countries/${
serializedCountries[serializedCountries.length - 1]
}`
)
.then((responose) => {
const CouData = responose.data.data; //The Data
setCountryData([...CountryData, CouData]); //set The Data to the OBJ
console.log(" setCountryData", CountryData);
})
.catch((error) => {
console.log("Error", error);
});
};
return (
<div>
<Country countries={CountryData} />
<Country countriesAll={CountryAllData} /></div>
}
国家组成部分
const DataGroup = this.props.countries.map((county) => {
return <Data info={county} />;
});
const DataGroupAll = this.props.countriesAll.map((country) => {
return <Data infos={country} />;
});
return (
<div>
{DataGroup}
{DataGroupAll}
</div>
数据组件
<h1>Name : {this.props.info.code}</h1>
<h1>Date : {this.props.info.updated_at}</h1>
<h1>Name : {this.props.infos.name}</h1>
<h1>Capital : {this.props.infos.capital}</h1>
【问题讨论】:
-
通常,当您收到
.map()is not a function 错误时,这意味着您尝试映射的任何内容都不是数组。那么this.props.countries是一个数组吗? -
是的,它实际上是一个数组,我将它初始化为一个空数组,然后将信息传递给它
-
您需要提供更完整的上下文来说明您正在尝试做的事情。基于sn-ps的代码很难进行故障排除。例如,您如何调用
onSerializeData函数?除了它的声明之外,我没有看到任何对它的引用。