Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

110
Vistas
Representación de datos de la API

Estoy tratando de hacer una llamada a la API y renderizar condicionalmente los datos en la página. Si cumple con ciertos criterios (fecha en este caso), quiero mostrarlo; de lo contrario, no quiero que aparezca en la página. Sin embargo, cuando escribo null , todavía obtengo 4 elementos que se registran como "nulos" en mi consola (solo quiero que aparezca el elemento "mostrar en la página"). He seguido este enfoque en proyectos anteriores y ha funcionado... ¿alguien sabe qué podría estar pasando aquí? Cualquier idea sería apreciada, ¡gracias!

 useEffect(() => { axios({ method: "get", url: `http://dataservice.accuweather.com/forecasts/v1/daily/5day/${userInput}`, params: { apikey: "<API_key>", }, }) .then((response) => { setWeatherData( response.data.DailyForecasts.map((item) => { console.log( item.Date === "2022-05-31T07:00:00-04:00" ? "display to page" : null ); }) ); }) .catch((error) => { console.log(error); }); }, [userInput]);

Al mapearlo en el jsx, hice esto:

 <section className="wrapper weatherContainer"> {weatherData.map((data) => { console.log(data); return ( <div className="topContainer"> {/* if date matches today's date, display on top container, otherwise don't display anything */} { data.Date === "2022-05-31T07:00:00-04:00" ? ( <div className="topContainer"> <h1>Today</h1> <p> <img src={require(`../../assets/${data.Day.Icon}.png`)} alt={data.Day.IconPhrase} /> {toCelcius(data.Temperature.Maximum.Value).toFixed(0)}&#176; </p> <p>{data.Day.IconPhrase}</p> </div> ) : null } </div> ); })} </section>
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Aparecen <div> vacíos porque la primera función de mapa dentro de las etiquetas <section> devuelve un <div className="topContainer"> incluso si el elemento no coincide. Devolver el artículo solo si coincide es el truco.

 <section className="wrapper weatherContainer"> {weatherData.map((data) => { console.log(data); return ( data.Date === "2022-05-31T07:00:00-04:00" ? ( <div className="topContainer"> <h1>Today</h1> ... rest of the elements </div> ) : null ); })} </section>
about 4 years ago · Juan Pablo Isaza Denunciar

0

No estás iniciando sesión correctamente. Mire, en su operador ternario, dice si es true : registre "display to page" , de lo contrario, registre null . Para registrar sólo los elementos que son

 item.Date === "2022-05-31T07:00:00-04:00"

Tienes que hacerlo de esta manera

 if(item.Date === "2022-05-31T07:00:00-04:00") console.log(item)
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda