import { View, Text, StyleSheet, TouchableHighlight, Image } from "react-native" import { FlatList, TextInput } from "react-native-gesture-handler" import { CITIES_DATA, City, getCurrentWeather, FAVORITE_CITY_DATA } from "../data/stub" import { VilleCompopo } from "../components/VilleCompopo"; import { TopBar } from "../components/TopBar"; import { useDispatch, useSelector } from "react-redux"; import { useEffect, useState } from "react"; import { getWeatherList } from "../redux/actions/getWeatherList"; export default function CityList({navigation}){ const weatherList = useSelector(state => state.appReducer.weatherList); const favoriteCity = useSelector(state => state.appReducer.favoriteCity) // Create a const that will hold the react-redux events dispatcher const dispatch = useDispatch(); const [cityName, setCityName] = useState(''); // Let's define a hook that will be used to update the rendered state after the return will be called // You cannot perform side-effects outside of a useEffect hook useEffect(() => { const loadWeather = async () => { await dispatch(getWeatherList()); }; loadWeather(); }, [dispatch]); return ( setCityName({cityName})}/> item.name} renderItem={({item}) => navigation.navigate("CityDetails", {"weather": item})}>} style={leStyle.container} /> ) } const leStyle = StyleSheet.create({ container: { flex: 1, alignContent: 'center', width: '100%' }, searchBar: { width: "90%", margin: 20, height: 30, backgroundColor: "powderblue", borderRadius: 10, textAlign: "center" } });