Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

215
Visualizações
¿Cómo mostrar un mensaje dentro de un div vacío cuando un componente no se representa en él?

Tengo un div dentro del cual estoy renderizando componentes de tarjetas dinámicas (SearchRes):

 <div className="search-res"> {games.filter(game => (game.background_image !== null)&&(game.ratings_count>38)).map(game=> <SearchRes key={game.name} title={game.name} rating={game.metacritic===null?<MdGamepad/>:game.metacritic} genre={game.genres.map(genre=>genre.name+" ")} imglnk={(game.background_image===null)?"":game.background_image} gameid={game.id} slug={game.slug} plat={game.parent_platforms} /> )} </div>

Cuando las tarjetas no se procesan (cuando no pasan las condiciones del filtro), obtengo un espacio en blanco. Quiero mostrar algo como que no results found cuando sucede tal cosa, ¿cómo puedo implementar esto? Actualmente estoy usando CSS para implementarlo:

 .search-res:empty::before { content: "No data";}

pero claramente esto no es viable ya que el mensaje es visible cuando la búsqueda ni siquiera se inicia: mensaje que se muestra cuando la búsqueda ni siquiera se inicia

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Si entiendo su pregunta, desea generar condicionalmente un respaldo "Sin datos" solo después de que haya obtenido los datos y no haya nada que procesar.

  1. Agregue un estado de carga y represente condicionalmente un indicador de carga.

  2. Filtre los games y en el renderizado verifique que haya una longitud de matriz (es decir, algo para mapear) y renderice condicionalmente la matriz o el texto alternativo si hay un término de búsqueda actual.

Código

 const [searchLoaded, setSearchLoaded] = React.useState(false); // in search handler // toggle searchLoaded false when initiating a search // toggle searchLoaded true when search completes const results = games.filter( game => game.background_image !== null && game.ratings_count > 38 ); <div className="search-res"> {results.length ? results.map(game => ( <SearchRes key={game.name} title={game.name} rating={game.metacritic === null ? <MdGamepad/> : game.metacritic} genre={game.genres.map(({ name }) => name).join(" ")} imglnk={game.background_image === null ? "" : game.background_image} gameid={game.id} slug={game.slug} plat={game.parent_platforms} /> )) : searchLoaded && "No Data" } </div>
about 4 years ago · Juan Pablo Isaza Relatório

0

Sugeriría filtrar la matriz primero, según las condiciones y luego verificar si la matriz tiene una longitud, es decir arr.length !== 0 y, si ese es el caso, luego asignar los resultados de la matriz al card component . Y si no, muestra el mensaje de que no se encontraron datos. Tendría que usar if/else o el ternary operator .

Gracias😊

about 4 years ago · Juan Pablo Isaza Relatório

0

si está utilizando un filtro solo para acondicionamiento, entonces no hay necesidad de un filtro; en su lugar, puede usar una representación condicional como esta:

 <div className="search-res"> {games.map(game=> {(game.background_image !== null && game.ratings_count>38) ? <SearchRes key={game.name} title={game.name} rating={game.metacritic===null?<MdGamepad/>:game.metacritic} genre={game.genres.map(genre=>genre.name+" ")} imglnk={(game.background_image===null)?"":game.background_image} gameid={game.id} slug={game.slug} plat={game.parent_platforms} /> : "NO RESULTS FOUND"} )} </div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda