Por que en el componente class sin el constructor podía declarar mi objeto state = {} y cuando agregaba el constructor() tenia que defini...

Pregunta de la clase:
Práctica del ciclo de vida
Rocio S. Alberto Aguedo

Rocio S. Alberto Aguedo

Pregunta
studenthace 5 años

Por que en el componente class sin el constructor podía declarar mi objeto state = {} y cuando agregaba el constructor() tenia que definir el objeto state dentro y usando this??

5 respuestas
para escribir tu comentario
    Jesus Federico David Herrera

    Jesus Federico David Herrera

    studenthace 4 años

    this.state lo tienes que usar asi por que en el constructor ya viene heredado de su padre. En cambio state sin constuctor es un atributo de la clase y no viene heredado. Es dificil de entender pero te daras cuenta que dentro del constructor se usa la funcion super(props), donde super es usado para obtener los atributos del objeto padre, React.Component.

    Kevin FG

    Kevin FG

    studenthace 5 años

    Por ejemplo si tu colocas this en consola , imprimira "Window" pues es el objeto contexto.

    Aqui en este otro ejemplo : Si ejecuto sin codear this.nombre y this.edad , me lanzara el error pues no encontrara esos valores dentro de getPresentacion() .

    let user = { nombre : 'kevin', edad : 22, getPresentacion(){ console.log(`Hola soy ${nombre} y tengo ${edad} `) } } user.getPresentacion()
    ReferenceError: nombre is not defined

    Al agregarle this.nombre y this.edad , sabra que el contexto es el objeto user!

    Hola soy kevin y tengo 22
    Kevin FG

    Kevin FG

    studenthace 5 años

    This es el objeto contexto de Javascript osea es donde estoy ejecutando el codigo, si no escribes this, el contexto es el mayor scope

    Fabiola Blanco Salazar

    Fabiola Blanco Salazar

    studenthace 5 años

    Al contrario del compañero, opino que tu duda va más por el lado de JS que por el lado de POO (Programación Orientada a Objetos). Esto es debido a que el scope de la variable cambia. Si tenemos la variable directamente en la clase, es decir, si la propiedad está directamente en la clase no es necesario especificar el this. Sin embargo, si lo ponemos dentro de una función el scope puede cambiar. Recuerda que tambien tenemos una clase padre, con el this le estamos diciendo explicitamente que es una propiedad del hijo propiamente. Me gustaría saber que opina algún otro compañero por acá ya que no estoy del todo segura de la respuesta. Pero probablemente juntos podamos llegar a la respuesta :D Así que, te animo a que continues con el curso y si te quedan muchas más dudas, a que continues preguntando. Aqui en la comunidad estamos para ayudarnos mutuamente :gree

    Isaac Navajas Pozo

    Isaac Navajas Pozo

    studenthace 5 años

    deberías mirar mas programación orientada a objetos.

Curso de React.js [Empieza Gratis]

Curso de React.js [Empieza Gratis]

React es una de las librerías más utilizadas hoy para crear aplicaciones web. Aprende desde la creación y diseño de componentes hasta traer datos de un API. Desarrolla aplicaciones web de muy alta calidad en tiempo record con React.js

Curso de React.js [Empieza Gratis]
Curso de React.js [Empieza Gratis]

Curso de React.js [Empieza Gratis]

React es una de las librerías más utilizadas hoy para crear aplicaciones web. Aprende desde la creación y diseño de componentes hasta traer datos de un API. Desarrolla aplicaciones web de muy alta calidad en tiempo record con React.js