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

527
Vistas
Comprender por qué super() está en desuso en un componente de clase React

Soy nuevo en React y estoy aprendiendo sobre el ciclo de vida del componente React con la última versión de React. Mi llamada "super" del código parcial a continuación está marcada con la advertencia obsoleta que se muestra. He tenido problemas para entender este, ya que mucha documentación todavía usa "super", y no estoy seguro de cuál es el sucesor, incluso del artículo completo vinculado en los comentarios. ¿Algunas ideas? Gracias.

 class App extends Component { constructor(props) { super(props); } }

Aquí está la advertencia:

 constructor React.Component<any, any, any>(props: any, context?: any): React:Component<any, any, any> (+1 overload) @deprecated @see - https://reactjs.org/docs/legacy-context.html '(props: any, context?: any): Component<any, any, any>' is deprecated ts(6385)
over 4 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

super(props); aún no está en desuso. El mensaje de obsolescencia en realidad se debió a un error en el archivo de definición de tipo de React y ya está solucionado a partir de @types/react 16.9.51 . Simplemente actualice el paquete y estará listo para comenzar:

 npm install @types/react
over 4 years ago · Santiago Trujillo Denunciar

0

Parece que el parámetro de contexto opcional está en desuso porque se refiere al contexto React heredado (anterior a la versión 16.3). ¿Qué versión de React estás usando?

https://reactjs.org/docs/legacy-context.html

No he usado React con TypeScript. Tal vez las asignaciones de React estén desactualizadas.

over 4 years ago · Santiago Trujillo Denunciar

0

Creo que esto es un error en jslint. El código obviamente no está usando el parámetro de contexto.

over 4 years ago · Santiago Trujillo Denunciar

0

Necesitas super(props); solo si vas a usar this.props en el constructor. De lo contrario, puede usar super(); Si usa super(); en el constructor no es un problema que fuera del constructor llames this.props . Puedes leer sobre ello en el siguiente enlace: https://overreacted.io/why-do-we-write-super-props/

 class Button extends React.Component { constructor(props) { super(); //we forgot to pass props console.log(props); //{} console.log(this.props); //undefined } // ... }

Puede ser aún más desafiante si esto sucede en algún método llamado desde el constructor. Y es por eso que siempre recomiendo pasar super(props) , aunque no sea necesario.

 class Button extends React.Component { constructor(props) { super(props); //we passed props console.log(props); //{} console.log(this.props); //{} } // ... }
over 4 years ago · Santiago Trujillo 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