Я пытаюсь получить статистику c COVID-19 из API от RapidAPI. Я хочу получить статистику по дате, вставить данные в график. Проблема в том, что ссылка API может содержать только дату, например:
https://covid-19-data.p.rapidapi.com/report/totals?date-format=undefined&format=undefined&date=2020-04-15
Что я сделал, так это использовал a для l oop, чтобы получить десять дат и использовать Ax ios для получения данных за каждый день следующим образом:
const today = new Date();
const dd = String(today.getDate()).padStart(2, '0');
const mm = String(today.getMonth() + 1).padStart(2, '0');
const [labels, setLabels] = useState([])
useEffect(() => {
for(let i=dd-10; i<dd; i++) {
Axios({
method: 'GET',
url: `https://covid-19-data.p.rapidapi.com/report/totals?date-format=undefined&format=undefined&date=2020-${mm}-${i}`,
headers: {
"x-rapidapi-host": "covid-19-data.p.rapidapi.com",
"x-rapidapi-key": "cfb0f14a9fmsh913ae802309e7c9p175585jsn825aebcbd5ac"
}
})
.then(response => {
let temp = [...labels]
temp.push(response.data[0].date)
setLabels(temp)
})
.catch(error => {
console.log(error)
})
}
}, [])
И проблема в том, что вместо добавления новой даты в массив labels
, labels
меняется каждый раз, когда Ax ios получает новую свидание.
Я провел какое-то исследование в Интернете, и люди говорят, что что-то вроде данных еще не загружено, поэтому, когда я устанавливаю состояние, оно вроде устанавливает пустые вещи и что-то в этом роде, но я не совсем понимаю, что они говорят.
Кроме того, когда он получает данные, он не получает их по порядку. Например, сегодня 15 апреля, он должен извлекать данные в следующем порядке: 05 06 07 08 09 10 11 12 13 14
, но вместо этого он просто скачет случайным образом. Если я укажу его на .then (), то он появится:
![img](https://i.stack.imgur.com/WsLYm.jpg)
Как видите, он не в порядке.
Пожалуйста, помогите мне взглянуть, я бы нашел решения, но безрезультатно.