Esto probablemente sea muy fácil, pero estoy tratando de agregar la ubicación del clima actual a una matriz cada vez que se hace clic en el botón 'agregar a favoritos'. La ubicación cambia cada vez que el usuario busca otro. Entonces, cada vez que busca una nueva ubicación, quiero poder agregar esto a una matriz para poder mostrar todas las ubicaciones favoritas en una página específica. En este momento, cada vez que se llama a la función, funciona, pero si lo hago nuevamente con otra ubicación, reescribe la primera y la matriz permanece con solo 1 elemento. ¿Alguien para ayudar?
Gracias
let arr = []; const favCity = () => { debugger; let newArr = [...arr]; let favCity = weatherSelector.weatherInfo.location.name; newArr.push(favCity); arr.push(newArr[0]); }; <div className="details"> <div className="weather_text"> <div className="city_tempa"> <p className="city_name" onChange={(e) => favCity("city", e.target.value)}> {weatherSelector.weatherInfo.location.name} </p> <p className="city_name">, {weatherSelector.weatherInfo.location.country}</p> <br /> <p className="city_temp">{Math.round(weatherSelector.weatherInfo.current.temp_c * 10) / 10}c°</p> </div> <div className="weather_icon"> <img className="city_icon" src={weatherSelector.weatherInfo.current.condition.icon} /> <p className="city_text">{weatherSelector.weatherInfo.current.condition.text}</p> </div> <div className="fav"> <button className="fav_btn" onClick={favCity}> Add to Favorite </button> </div> </div>Gracias a todos :)
La matriz que necesita es newArr, que contiene las nuevas ubicaciones. Entonces solo necesita asignar este newArr a arr.
let arr = []; const favCity = () => { let newArr = [...arr]; let favCity = weatherSelector.weatherInfo.location.name; newArr.push(favCity); arr = newArr };¿Al seleccionar una nueva ubicación se vuelve a cargar la página? Debido a que su código no parece tener ningún problema (en la medida en que ignoremos la creación de una nueva matriz sin motivo, puede simplemente hacer arr.push (favCity).
Porque eso significaría que arr = [] se inicializará nuevamente ... si puede publicar un ejemplo mínimo reproducible (como codepen.io), eso seguramente aclararía algunas cosas