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

129
Vistas
¿Reaccionar agregando className adicional a través de accesorios no sigue el orden correcto?

Tengo un componente personalizado en un archivo, digamos así:

 import styles from './CustomComponent.module.css' export default CustomComponent = ({className, onClick, text, ...props}) => { return ( <div className={styles.outer}> <div className={`${styles.inner} ${className}`}>{text}</div> </div> ) }

Ese componente se importa a otro archivo, que tiene sus propios componentes y módulo css:

 import styles from './ParentComponent.module.css' import CustomComponent from '../CustomComponent/CustomComponent.component.js' export default ParentComponent = () => { return ( <> This is an example. <CustomComponent text='Example' className={styles.overrideStyle} /> </> ) }

Lo que quiero que suceda es que overrideStyle se pueda usar para agregar parámetros css y/o anular algunos existentes del estilo del contenedor. Lo que ocurre es que se añaden nuevos parámetros, si no estaban previamente definidos en el estilo interior, pero no se sobrescriben los ya existentes.

Por ejemplo, si el css de CustomComponent es algo como:

 .outer { width: 100%; padding-top: 20px; } .inner { height: 100px; width: 100%; }

y overrideStyle es algo como esto:

 .overrideStyle { height: 500px; padding: 20px; }

Esperaba que las propiedades css resultantes del div interno CustomComponent se comportaran de la siguiente manera:

 .(combined) { height: 500px; width: 100%; padding: 20px; }

Lo que obtengo es:

 .(combined){ height: 100px; width: 100%; padding: 20px; }

Se agregan nuevas propiedades, pero las existentes no se sobrescriben.

¿Qué reglas hay que no entiendo y cómo puedo forzar el className que se pasa a través de accesorios para reemplazar el interno?

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

0

Hay un error tipográfico en su CustomComponent , debería ser

<div className={ ${styles.containerStyle} ${className} }>{text}</div>

en lugar de solo <div className={ ${styles.container} ${className} }>{text}</div>

Cambie styles.container a styles.containerStyle en CustomComponent

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una solución provista por un amigo mío es marcar las propiedades de overrideStyle con !importante:

 .overrideStyle { height: 500px !important; padding: 20px !important; }

Esto no resuelve el problema, pero proporciona una solución rápida y sucia por ahora.

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