Почему возникает ошибка, при удачном запросе на сервер?

Здравствуйте, подскажите из-за чего возникает ошибка, написано что data не доступна, хотя как я понимаю запрос на сервер происходит при полном рендеринг компоненто, как можно обойти это

import React from 'react';

import LocationInput from '../locationInput/LocationInput';

import { useState, useEffect } from 'react';

import weatherServices from '../server/weather-services';

import './MainBlock.scss';

const MainBlock = () => {

const [data, setData] = useState({}); 
const [city, setCity] = useState('miami');

const {getWeather} = weatherServices();


useEffect(() => {
    getWeather(city)
    .then(res => setData(res))
    .catch(err => console.error(err));
}, [city]);

const onCityChange = (city) => {
    setCity(city);
}

return (
    <>
        <section className='main-block'>
            <div className="main-block_title">{data.name}</div>
            <div className="main-block_temperature">{Math.floor(data.main.temp)}<span className='prefix'>℃</span></div>
            <div className="main-block_info">
                <div className="info-block">
                    <span className="info-block_title">pressure</span>
                    <span className="info-block_value">{data.main.pressure}</span>
                </div>
                <div className="info-block">
                    <span className="info-block_title">humidity</span>
                    <span className="info-block_value">{data.main.humidity}%</span>
                </div>
                <div className="info-block">
                    <span className="info-block_title">wind</span>
                    <span className="info-block_value">{data.wind.speed} km/h</span>
                </div>
            </div>
        </section>
        <LocationInput onCityChange={onCityChange}/>
    </>
);

};

export default MainBlock;

//////////////////

const weatherServices = () => { const _apiKey = 'ea44567e6275914944aec1cc0fd91921';

const getWeather = async(city) => {
    const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=ea44567e6275914944aec1cc0fd91921`);
    return await res.json();
}

return {getWeather};

}

export default weatherServices;

/////////

import React from 'react'; import { useState } from 'react';

import './LocationInput.scss';

const LocationInput = ({onCityChange}) => {

const [inputValue, setInputValue] = useState('');


const onChangeValue = (e) => {
    setInputValue(e.target.value);
}

const onSubmit = () => {
    onCityChange(inputValue);
    console.log(inputValue);
    setInputValue('');
}

return (
    <form onSubmit={onSubmit}>
        <input type="text" 
        value={inputValue} 
        placeholder='Location' 
        onChange={e => onChangeValue(e)} />
    </form>
);

};

export default LocationInput;

///////


Ответы (0 шт):