es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Styled-components – Se generaron más de 200 clases, pero no puedo hacer que :hover funcione.

Me encontré con un error en styled-components:

Se generaron más de 200 clases para el componente……

Luego hice el arreglo sugerido desde la consola, lo cual funcionó, pero cuando tengo un componente contenedor “Card” que al pasar el mouse por encima debería cambiar el color del texto de otro componente “Number” (al que se le aplicó dicho arreglo sugerido), entonces no puedo cambiar el color (supongo que porque el estilo anula el cambio al pasar el mouse, ya que funciona bien con opacidad).

Los componentes mencionados están en src/ProgressPieCard (los primeros 2 componentes).

¿Alguien tiene alguna sugerencia? Gracias de antemano 🙂

(lo siento, el estilo/posición está un poco desordenado)

Enlace a CodeSandBox: https://codesandbox.io/s/zen-burnell-hsveq?file=/src/ProgressIndicatorCardPage/ProgressPieCard/styled.ts

const Number = styled.p.attrs<ColorProps>((props) => ({
  style: {
    color: props.color,
  },
}))<code>
  position: absolute;
  span {
    font-size: 1.5rem;
  }
</code>;

const Card = styled.div.attrs<ColorProps>((props) => ({
  style: {
    background: props.color,
  },
}))<code>
  position: relative;
  &amp;:hover {
    ${Number} {
      opacity: 0.5;
      // color: red;  &lt;-- esto no funciona
    }
  }
</code>;
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que al aplicar la solución para el error “Se generaron más de 200 clases para el componente” en styled-components, el cambio de color del texto al pasar el mouse sobre el componente “Número” en el componente “Tarjeta” ya no funciona. Esto puede ser debido a que las clases generadas sobrescriben el estilo del mouse sobre. Una sugerencia podría ser probar el selector “nth-child” para apuntar al componente “Número” dentro del componente “Tarjeta” y aplicar el estilo de mouse sobre a esa instancia específica. Otra solución podría ser agregar una clase adicional al componente “Número” cuando se pasa el mouse sobre él y luego definir los estilos para esa clase por separado.

Comments are closed.