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

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

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 Report

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 Report

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 Report

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