Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

185
Views
Cambie dinámicamente la clase según el índice actual en un componente de reacción. (objeto.mapa)

Tengo esta instrucción Object.map en un componente de reacción.

 { instagramItems.map((item, index) => ( <div className="row" Key={index}> <div onClick={() => handleClick(item, index)} className="image-block col-sm-4" style={{ backgroundImage: "url(" + item.media_url + ")", backgroundPosition: 'center ', backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }}></div>

Quiero cambiar la clase col-sm-X en un div para que la salida repita este patrón.

 col-sm-4 col-sm-8 col-sm-4 col-sm-4 col-sm-4 col-sm-8 col-sm-4

Supongo que necesito usar el índice para calcular lo que necesito para configurar la clase.

Actualizar:

Aunque he marcado la respuesta de Yuji 'Tomita' Tomita como la correcta. no es exactamente lo que queria...

Quiero que el patrón se repita, no solo tener diferentes clases para la primera y la última. Quiero que la salida sea así:

http://www.prepbootstrap.com/bootstrap-template/responsive-image-tiles

¿Alguien puede mejorar la respuesta?

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Sí. Si tiene una lógica detrás, es decir, "el elemento 2 y el penúltimo" son 8, entonces puede codificarlo.

 `col-sm-${index === 1 || index === myArray.length-2 ? 8: 4}`

O bien, podría tener una matriz separada de clases si no siguen ningún patrón y extraen el índice de bucle.

 const cols = [4, 8, 4, 4, 4, 8] const myArray.map((x, i) => <div className={cols[i]}></div>)

La forma en que lo haces es más una especie de experiencia de desarrollador. ¿Qué patrón es más fácil de entender/mantener/etc.

about 4 years ago · Santiago Gelvez Report

0

Solo para mayor claridad después de la respuesta de @Yuji 'Tomita' Tomita

El código fuente que funciona se ve así:

 {instagramItems.map((item, index) => ( <div Key={index} onClick={() => handleClick(item, index)} className={"image-block col-sm-" + (index === 1 || index === instagramItems.length - 2 ? 8 : 4) } style={{ backgroundImage: "url(" + item.media_url + ")", backgroundPosition: 'center ', backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }}></div> ))}
about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!