Siempre he usado algo similar a
class MyComponent extends React.Component { constructor(props) { super(props) this.state = { var1 : undefined, var2 : 'etc...', } } } Pero hoy, mientras trabajaba en VS Code, me di cuenta de que hay una línea de tachado en super(props) , ¡que nunca antes había estado ahí!
¿Que ha cambiado? (el enlace a los documentos en la ventana emergente no es muy útil)
Supongo que su editor le muestra la descripción de la firma super (accesorios, contexto) que está obsoleta. Ese enlace al que apunta tiene que ver con cómo desaparece la API de contexto anterior, y esa firma de llamada en particular es parte de lo que se va.
Sin embargo, no he oído hablar de que un super(props) simple desaparezca, debería estar seguro de continuar usándolo.
súper (accesorios) :
súper() :
Si no está utilizando this.props en el constructor, no es necesario pasar props al super().
En lugar de this.props , siempre puedes usar props .
Está bien no pasar props a super ya que, independientemente de pasarlo a super, this.props todavía está disponible dentro de la función de renderizado.
class MyComponent extends React.Component { constructor(props) { super(); this.state = { var1 : undefined, var2 : 'etc...', }; } }Parece ser un error. Si actualiza su "@types/react", resolverá el problema.
npm install --dev @types/reactcuando tu código en el @latest
npm install --also=dev @types/reactsuper(props) no ha quedado en desuso. Consulte el documento oficial: https://reactjs.org/docs/react-component.html#constructor
Esto no es un error en realidad. Este es un error relacionado con el editor de código, Typescript y React. Puede leer aquí: https://github.com/microsoft/TypeScript/issues/40511
La buena noticia es que esto está resuelto . Puede encontrar la solución aquí: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/47784