有人能帮我解决这个错误吗?我正在尝试为国家名称创建一个下拉选择器,从以下 API 路径中提取:https ://api.covid19api.com/countries
TypeError: Country.map is not a function
at fetchCountries (index.js:29)
at async fetchAPI (CountryPicker.jsx:13)
这是我正在处理的两个代码部分:
CountryPicker.jsx
import React, { useState, useEffect } from 'react';
import { NativeSelect, FormControl } from '@material-ui/core';
import styles from './CountryPicker.module.css';
import { fetchCountries } from '../../api';
const CountryPicker = () => {
const [fetchedCountries, setFetchedCountries] = useState([]);
useEffect(() => {
const fetchAPI = async () => {
setFetchedCountries(await fetchCountries());
};
fetchAPI();
}, [setFetchedCountries]);
console.log(fetchedCountries);
return (
<FormControl className={styles.formControl}>
<NativeSelect >
<option value="">Global</option>
</NativeSelect>
</FormControl>
);
};
export default CountryPicker;
index.js
import axios from 'axios';
const summary = 'https://api.covid19api.com/summary';
const countriesURL = 'https://api.covid19api.com/countries';
export const fetchData = async () => {
try {
const { data: { Global: { NewConfirmed, TotalConfirmed, NewDeaths, TotalDeaths, NewRecovered, TotalRecovered, }, Date } } = await axios.get(summary);
return { NewConfirmed, TotalConfirmed, NewDeaths, TotalDeaths, NewRecovered, TotalRecovered, Date };
} catch (error) {
console.log(error);
}
}
//TODO
//Fetch Daily Data for charts using axios
export const fetchCountries = async () => {
try {
const { data: [ {Country} ] } = await axios.get(countriesURL);
return Country.map((Country) => Country);
} catch (error) {
console.log(error);
}
};
我试图查找错误可能发生的原因,我发现 .map() 不适用于不是数组的变量,但我不确定当前的实现,如何解决这个问题
API 中的数据如下所示:
[
{"Country":"Micronesia, Federated States of","Slug":"micronesia","ISO2":"FM"},
{"Country":"Bangladesh","Slug":"bangladesh","ISO2":"BD"},
{"Country":"Bouvet Island","Slug":"bouvet-island","ISO2":"BV"},
// ...and so on...
]
Cats萌萌
斯蒂芬大帝
相关分类