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

173
Views
¿Hay una mejor manera de organizar este nombre de clase dinámico?

Tengo una extend variable que podría ser una cadena vacía '' o active , que es una clase CSS.

Una vez que se hace clic en el div superior, todos los elementos posteriores se actualizan con "activo"

 <div className={`container ${extend ? "active" : ""}`} onClick={() => setExtend(!extend)} > <p className={`card ${extend ? "active" : ""}`}>Visa Card</p> <h1 className={`balance ${extend ? "active" : ""}`}>$55,343.15</h1> </div>

entonces mi CSS se ve así

 .container { &.active } .card { &.active } .balance { &.active }

Siento que hay muchas repeticiones tanto en CSS como en JS y me pregunto si hay una forma más elegante de hacerlo.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Para su JS:

 // Use a function to help init classes with active state if needed const addClasses = useCallback((baseClasses) => { const classes = [baseClass]; if (extend) { classes.push('active'); } return classes.join(' '); }, [extend]); return <div className={addClasses('container')} onClick={() => setExtend(!extend)} > <p className={addClasses('container')}>Visa Card</p> <h1 className={addClasses('balance')}>$55,343.15</h1>

Para su CSS, depende de lo que esté haciendo en &.active. Si cada uno de ellos tiene el mismo estilo activo, entonces:

Para su CSS:

 .container, .card, .balance { &.active { // common style goes here } }
about 4 years ago · Juan Pablo Isaza Report

0

Una buena idea en su caso puede ser usar el paquete classnames : https://www.npmjs.com/package/classnames . De esta manera, puede administrar fácilmente los nombres de clase de sus componentes.

about 4 years ago · Juan Pablo Isaza 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!