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

362
Views
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 answers
Answer question

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 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!