Ваш запрос работает, вы просто неправильно анализируете ответ. Если вы посмотрите в консоль, вы увидите, что ответ data - это объект, содержащий массив с именем data. Вы пытаетесь присвоить значение своего города свойству, которого нет в объекте root, а в объекте, содержащемся в массиве данных.
Попробуйте изменить это:
const data = await api_call.json();
this.setState({
latitude: latitude,
longitude: longitude,
city: data.city_name,
data: data,
isLoaded: true
});
на это:
const {data} = await api_call.json();
this.setState({
latitude: latitude,
longitude: longitude,
city: data[0].city_name,
data: data[0],
isLoaded: true
});
Также было бы разумно попытаться обработать 0 или более 1 объектов в массиве data
.
Также стоит упомянуть, что эта строка:
const {data} = await api_call.json();
называется деструктуризацией объекта и аналогична следующей:
let data = await api_call.json();
data = data.data;