Estaba siguiendo un tutorial de YouTube sobre eventHandling cuando me confundí con la implementación de esta palabra clave.
En el siguiente código, la palabra clave this dentro de la función clickHandler da el valor de indefinido. El instructor dijo que es porque así es como funciona JavaScript. Pero cuando busqué en línea, descubrí que esta palabra clave, cuando se usa dentro de una función de una clase, apunta al objeto en sí.
Esta puede ser una pregunta estúpida, pero como soy nuevo en JavaScript, cualquier ayuda será apreciada.
class EventBind extends Component { constructor(props) { super(props); this.state = { message: "Hello", }; } clickHandler() { // this.setState({ // message : 'Goodbye' // }) console.log(this); } render() { return ( <div> <div>{this.state.message}</div> <button onClick = {this.clickHandler}>Click</button> </div> ); } }Esto se debe a que no ha vinculado clickHandler a this . Pruebe el siguiente código
class EventBind extends Component { constructor(props) { super(props); this.clickHandler = this.clickHandler.bind(this); ... } clickHandler() { ... } ... }Consulte aquí para obtener más información: https://reactjs.org/docs/faq-functions.html