He buscado y leído sobre esta pregunta durante tanto tiempo y todavía no puedo entenderlo. Entonces, en un componente de clase React, escribiría métodos como este:
class Test extends React.Component { constructor(props){ super(props) this.method = this.method.bind(this) } method() { ... } }Si "esto" no está vinculado de forma predeterminada, ¿por qué podemos usar "este método"? ¿Qué significa "esto" en "este.método" y "vincular.(esto)". ¿Son lo mismo?
Esta línea: this.method = this.method.bind(this) realmente me confunde. Por favor, ayúdame a explicar cada uno de los 3 "esto" en esta línea. Gracias.
Vincular un método a "esto" es útil cuando lo pasa a un componente secundario . Cuando hace esto, generalmente es para poder cambiar el estado local del componente principal cuando el componente secundario ejecuta este método. es como decir
"Quiero que este método esté vinculado a esta clase, es decir, si se llama desde cualquier lugar, las referencias a "esto" dentro de este método se refieren a ESTA clase"
Aquí hay un artículo interesante que explica esto en detalle:
https://yehudakatz.com/2011/08/11/entendiendo-la-funcion-de-javascript-invocacion-y-esto/