Olá, pessoal.
Qual é a vantagem de repetir o bind a cada utilização do this em escopos variados? Não seria melhor utilizarmos arrow function para que o escopo do this já se autoajustasse?!
Ao invés de:
constructor() {
super();
this.state = {lista : [],nome:'',email:'',senha:''};
this.enviaForm = this.enviaForm.bind(this);
this.setNome = this.setNome.bind(this);
this.setEmail = this.setEmail.bind(this);
this.setSenha = this.setSenha.bind(this);
}
Teríamos o constructor mais limpo e as funções =>
:
constructor() {
super();
this.state = {lista:[], nome:'', email:'', senha:''};
}
componentDidMount(){
$.ajax({
url: 'https://cdc-react.herokuapp.com/api/autores',
dataType: 'json',
success:function(resposta){
this.setState({lista:resposta});
}.bind(this)
});
}
enviaForm = (evento) => {
evento.preventDefault();
$.ajax({
url: 'https://cdc-react.herokuapp.com/api/autores',
contentType: 'application/json',
dataType: 'json',
type: 'post',
data: JSON.stringify({
nome: this.state.nome,
email: this.state.email,
senha: this.state.senha
}),
success: function(resposta){
this.setState({lista: resposta});
}.bind(this),
error: function(resposta){
console.log("erro!");
}
});
}
setNome = (evento) => {
this.setState({nome:evento.target.value});
}
setEmail = (evento) => {
this.setState({email:evento.target.value});
}
setSenha = (evento) => {
this.setState({senha:evento.target.value});
}