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

363
Vistas
Cómo deshacerse del error Los componentes de la función no pueden recibir referencias. Los intentos de acceder a esta referencia fallarán. ¿Querías usar React.forwardRef()?

Estoy usando "estilo" de material ui para estilizar mis componentes. Ahora, estoy limpiando el código de los errores de la consola.

Al principio, estaba teniendo algo así: "Advertencia: React no reconoce el elemento constantColors en un elemento DOM. Si intencionalmente desea que aparezca en el DOM como un atributo personalizado, escríbalo como colores constantcolors en minúsculas. Si accidentalmente pasó de un componente principal, elimínelo del elemento DOM".

Como por ejemplo, el problema estaba en pasar todos los accesorios al elemento DOM child (¿problema conocido?) Entonces, este código:

 export const StyledAddCircleOutlined = styled(AddCircleOutline)( ({ theme, constantColors = false }) => css` color: ${constantColors ? theme.palette.success.main : 'none'}; transition: all 1s ease; cursor: pointer; :hover { color: ${constantColors ? 'none' : theme.palette.success.main}; opacity: ${constantColors ? 0.6 : 'none'}; } :active { color: ${theme.palette.success.light}; transition: all 5ms ease; } ` )

fue refactorizado por mí a tal cosa:

 export const StyledAddCircleOutlined = styled( ({ theme, constantColors = false, ...rest }) => <AddCircleOutline {...rest} /> )( ({ theme, constantColors = false }) => css` color: ${constantColors ? theme.palette.success.main : 'none'}; transition: all 1s ease; cursor: pointer;

(...)

Y en la mayoría de los casos esto funciona en otros componentes... pero no esta vez. Esta vez, solo tengo un nuevo error en su lugar :)

"Advertencia: los componentes de la función no pueden recibir referencias. Los intentos de acceder a esta referencia fallarán. ¿Quería usar React.forwardRef()? Verifique el método de representación de Styled(Component) "

Que esta pasando ? Por lo general, dicho refactor funciona, ni siquiera es una función compleja, es solo un ícono de la biblioteca material-ui: P

¿Cómo arreglar eso? No estoy dando referencias en ningún lado y no sé si debería hacerlo.

En la estructura DOM se ve así:

 {index === 0 && !isMobileDevice && ( <StyledAddCircleOutlined onClick={() => handleAddField(name, field.value)} constantColors /> )}
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

cuando se usan componentes con estilo, los accesorios de referencia (y más) se pasan de forma predeterminada. en tu caso, cuando agregas el ...rest estás pasando más accesorios de los que puedes ver (imprímelo y mira la consola).

simplemente saque la referencia de esta manera: export const StyledAddCircleOutlined = styled( ({ theme, constantColors = false, ref, ...rest }) => <AddCircleOutline {...rest} /> ,

si esto no resuelve su problema, envuelva su componente con forwardRef y extráigalo como referencia

about 4 years ago · Santiago Gelvez 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