Я использую API openweathermap для получения 5-дневного 3-часового прогноза. Но я не хочу получать данные за каждые 3 часа. Просто максимальная и минимальная температура для каждого дня рендеринга.
Мне удалось использовать карту для отображения массива объектов, показывающих минимальную и максимальную температуры относительно даты. Но я хочу свести это к одному результату в день с отображением минимума и максимума.
componentDidMount() {
const apiKey = secrets.apiKey;
axios
.get(
`https://api.openweathermap.org/data/2.5/weather?q=berlin&APPID=${apiKey}&units=metric`
)
.then(data => {
console.log("Current", data.data);
this.setState({
result: data.data
});
})
.catch(err => {
console.log("err in api get", err);
});
axios
.get(
`https://api.openweathermap.org/data/2.5/forecast?q=berlin&APPID=${apiKey}&units=metric`
)
.then(data => {
console.log("Forecast", data.data);
this.setState({
forecast: data.data
});
})
.catch(err => {
console.log("err in api get", err);
});
}
render() {
if (!this.state.forecast) {
return null;
} else {
const allDays = this.state.forecast.list;
const newArr = allDays.map(forecast => {
const container = {};
container.date = forecast.dt_txt.slice(0, 10);
container.temp_max = forecast.main.temp_max;
container.temp_min = forecast.main.temp_min;
return container;
});
console.log("newArr", newArr);
}
return (
<div>
<Current weather={this.state.result} />
</div>
);
}