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

102
Visualizações
Agregue accesorios adicionales al componente en un bucle foreach

tengo un componente en React que recibe algunos elementos (fotos), tengo un objeto con esta composición:

 getItems() { const { gallery } = this.props; const { content_elements: contentElements } = gallery; const items = []; if (contentElements) { contentElements.forEach((photo, index) => { let item = ( <div key={photo.id} className="gal__fig-item"> <Image srcset="gallery" figureClassName="mm" imgClassName="mm__img" noZoom={true} showCaption={false} wrapperClassName="mm__wr" {...photo}/> </div> ); items.push(item); }); } return items; }

Necesito agregar un accesorio en el componente de la imagen, pero solo en el primer elemento (índice = 0).

Hago esto:

 getItems() { const { gallery } = this.props; const { content_elements: contentElements } = gallery; const items = []; if (contentElements) { contentElements.forEach((photo, index) => { let item = ( <div key={photo.id} className="gal__fig-item"> <Image srcset="gallery" figureClassName="mm" imgClassName="mm__img" noZoom={true} showCaption={false} wrapperClassName="mm__wr" {...photo}/> </div> ); if(index === 0){ item = ( <div key={photo.id} className="gal__fig-item"> <Image srcset="gallery" figureClassName="mm" imgClassName="mm__img" noZoom={true} showCaption={false} hasLazyLoad={false} wrapperClassName="mm__wr" {...photo}/> </div> ); } items.push(item); }); } return items; }

Eso funciona, pero... ¿quizás haya otra opción, un código más limpio, para hacerlo? ¿Puede ayudarme alguien? Gracias

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

0

puede establecer hasLazyLoad en función del valor de i :

 if (contentElements) { contentElements.forEach((photo, index) => { let item = ( <div key={photo.id} className="gal__fig-item"> <Image srcset="gallery" figureClassName="mm" imgClassName="mm__img" noZoom={true} showCaption={false} hasLazyLoad={i !== 0} // use i !== 0 to false when i = 0 wrapperClassName="mm__wr" {...photo}/> </div> ); } ```
about 4 years ago · Juan Pablo Isaza Relatório

0

Reemplazaría forEach para mapear y agregar un operador ternario para hasLazoLoad prop:

 getItems() { const { gallery } = this.props; const { content_elements: contentElements } = gallery; const items = contentElements?.map((photo, index) => { return <div key={photo.id} className="gal__fig-item"> <Image srcset="gallery" figureClassName="mm" imgClassName="mm__img" noZoom={true} showCaption={false} hasLazyLoad={index === 0 ? false : true} wrapperClassName="mm__wr" {...photo} /> </div> }) || []; return items; }
about 4 years ago · Juan Pablo Isaza Relatório

0

Sugiero esto:

si el índice era cero, hasLazyload será falso y viceversa

 getItems() { const { gallery } = this.props; const { content_elements: contentElements } = gallery; const items = []; if (contentElements) { contentElements.forEach((photo, index) => { let item = ( <div key={photo.id} className="gal__fig-item"> <Image srcset="gallery" figureClassName="mm" imgClassName="mm__img" noZoom={true} showCaption={false} hasLazyLoad = {index !== 0} wrapperClassName="mm__wr" {...photo}/> </div> ); items.push(item); }); } return items; }
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