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

150
Vistas
className condicional convertir a componente con estilo

Estoy tratando de aprender y convertir mi proyecto de css a componente con estilo ( https://styled-components.com/ ), en este momento he convertido todos mis otros componentes excepto un componente en el que estoy atascado, revisé otros ejemplos de stackoverflow pero no era del mismo tipo. Tengo nombres de clase condicionales.

Mi pregunta es cómo convertir el componente InfoBox para usar un componente con estilo. ¿Necesito inyectar los estilos a través de algún tipo de contenedor de componentes con estilo o eso no es necesario?

el inglés no es mi lengua materna, por lo que podría estar equivocado

mi código:

 import React from 'react' import "./InfoBox.css" function InfoBox({ isRed, active, activetored, ...props }) { return ( <div onClick={props.onClick} className={`infoBox ${active && "infoBox--selected"} ${activetored && "infoBox--selectedtored"} ${isRed && "infoBox--red"} `} > </div> ) } export default InfoBox

 <div className="app__stats"> <InfoBox isRed active={typeofCase === "cases"} onClick={(e) => setTypeofCase('cases')} /> <InfoBox isGreen active={typeofCase === "recovered"} onClick={(e) => setTypeofCase('recovered')} /> <InfoBox isRed activetored={typeofCase === "deaths"} onClick={(e) => setTypeofCase('deaths')} /> </div>

css es así (puedes poner lo que sea):

 . infoBox--selected { border-top: 10px solid greenyellow; } . infoBox--selectedtored { border-top: 10px solid red; } . infoBox--red { border-color: darkblue; }

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una de las ideas detrás del componente con estilo es evitar los nombres de clase. En lugar de configurar el css por clase, tiene pocas opciones. lo más fácil probablemente sea usar sus accesorios dentro del código css y cambiar el estilo por él:

 const InfoBox = styeld.div` border-color: ${props => props.isRed ? 'darkblue' : 'black'}; border-top: ${props => props.active ? '10px solid greenyellow' : 'red'}; ... `;

de esta manera, no necesita nombres de clase (aunque también se puede hacer con él, obviamente).

Ahora, en lugar del div dentro del componente, use el componente de estilo InfoBox que acabamos de escribir y listo.

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