Lección 12. Eventos y Property Initializer.
En la anterior clase, creábamos funciones dentro de un componente y las asignábamos cada que sucedía un evento.
Aprendimos que para poder asignar una funcion a un componente, debiamos bindear.
Una nueva manera para simplificar todo el bindeo de una función, podemos usar las ARROW FUNCTIONS.
Tenemos el mismo código que la clase anterior, con
Eliminamos el constructor.
el this.state ya no necesita el "this.".
las funciones sumar y restar ahora son arrow functions.
import React, { Component} from "react";
//Properties initializer
export default class EventosES7 extends Component {
state = {
contador:0,
}
sumar = (e) => {
console.log("Sumando");
console.log(this);
this.setState({
contador: this.state.contador + 1,
})
}
restar = (e) => {
console.log("Restando");
console.log(this);
this.setState({
contador: this.state.contador - 1,
})
}
render() {
return (
<div>
<h2>
Eventos en Componentes ES7
</h2>
<nav>
<button onClick={this.sumar}>
+
</button>
<button onClick={this.restar}>
-
</button>
</nav>
<h3>
{this.state.contador}
</h3>
</div>
)
}
}De esta nueva manera (traída desde ES7), nos permite definir y asignar las funciones sin necesidad del bindeo.
Nota: Recordemos que las arrow functions obtienen el contexto donde se declaran.