Пишу небольшое приложение о погоде на React Native
В качестве API выбрал
openweathermap
Компонент, который содержит в себе FlatList и должен рендерить другие компоненты:
export const WeatherCards = (props: any) => {
return (
<View>
<FlatList
data={props.data}
renderItem={({ item }) => (
<TouchableOpacity onPress={() => props.navigation.navigate('WeatherItem', item)}>
<WeatherCard city={item.name} temperature={item.main.temp} />
</TouchableOpacity>
)}
keyExtractor={item => item.id.toString()}
/>
</View>
)
};
Данные, которые хранятся в props компонента WeatherCards:
Object {
"data": Object {
"base": "stations",
"clouds": Object {
"all": 86,
},
"cod": 200,
"coord": Object {
"lat": 49.4285,
"lon": 32.0621,
},
"dt": 1640892582,
"id": 710791,
"main": Object {
"feels_like": -11.87,
"grnd_level": 1007,
"humidity": 90,
"pressure": 1021,
"sea_level": 1021,
"temp": -7.19,
"temp_max": -7.19,
"temp_min": -7.19,
},
"name": "Cherkasy",
"sys": Object {
"country": "UA",
"sunrise": 1640843259,
"sunset": 1640872835,
},
"timezone": 7200,
"visibility": 10000,
"weather": Array [
Object {
"description": "overcast clouds",
"icon": "04n",
"id": 804,
"main": "Clouds",
},
],
"wind": Object {
"deg": 225,
"gust": 3.5,
"speed": 2.77,
},
},
"navigation": Object {
"addListener": [Function addListener],
"canGoBack": [Function canGoBack],
"dispatch": [Function dispatch],
"getParent": [Function getParent],
"getState": [Function anonymous],
"goBack": [Function anonymous],
"isFocused": [Function isFocused],
"navigate": [Function anonymous],
"pop": [Function anonymous],
"popToTop": [Function anonymous],
"push": [Function anonymous],
"removeListener": [Function removeListener],
"replace": [Function anonymous],
"reset": [Function anonymous],
"setOptions": [Function setOptions],
"setParams": [Function anonymous],
},
}
Скажите пожалуйста, почему FlatList не рендерит компоненты?
До этого я в data помещал этот массив и всё работало:
const [cities, setCities] = useState([
{ id: 1, city: 'Cherkassy', temperature: '-4', time: '12:22', typeOfWeather: 'Cloudy' },
{ id: 2, city: 'Kiev', temperature: '-3', time: '12:22', typeOfWeather: 'Cloudy' },
{ id: 3, city: 'Lviv', temperature: '-5', time: '12:22', typeOfWeather: 'Cloudy' },
]);