Я работал над вашим кодом, создав API-интерфейс погоды, который похож на ваш API-интерфейс, и внес некоторые изменения в код, который теперь работает, проверьте с помощью этого кода.
Это массив погоды, который я получаю из API, я также использую погодный API как ваш
Object {
"description": "light intensity drizzle",
"icon": "09d",
"id": 300,
"main": "Drizzle",
},
код:
import React, { Component, createElement } from 'react';
import {
StyleSheet,
Text,
View,
Image,
ImageBackground,
ActivityIndicator,
} from 'react-native';
class App extends Component {
constructor(props) {
super(props);
this.state = {
todos: [],
isLoading: true,
};
}
componentDidMount = async () => {
fetch(
'https://samples.openweathermap.org/data/2.5/weather?q=London&appid=439d4b804bc8187953eb36d2a8c26a02'
)
.then(res => res.json())
.then(data => {
this.setState({ todos: data });
})
.catch(error => console.error(error))
.finally(() => {
this.setState({ isLoading: false });
});
};
render() {
return (
<View style={{flex:1,justifyContent:"center",alignItems:"center"}}>
<Text>Hello</Text>
<Text>
{this.state.todos.weather != undefined ? this.state.todos.weather[0].description : null}
</Text>
<Text>
{this.state.todos.weather != undefined ? this.state.todos.weather[0].main : null}
</Text>
</View>
);
}
}
export default App;
Надеюсь, это поможет!