1
resposta

duvidas de bind

porque ao passar o metodo para o filho não precisou de bind?

1 resposta

Felipe,

Nessa passagem de parâmetro, diferente da abordagem do bind, você não precisa dessa atribuição porque ele está recebendo e apresentando os registros somente como parâmetro. Dessa forma, não precisa ter acesso ao this. Ele simplesmente usa o método para imprimir valores.

Exemplo:

class App extends Component {

  constructor(){
    super();
    this.teste = "xxxx";
  }
  criarNota(titulo, texto){
    console.log(`uma nova nota foi criada ${titulo} ${texto}`);
    console.log(this.teste);
  }
  render() {
    return (
      <section className="conteudo">
        <FormularioCadastro criarNota={this.criarNota}/>
        <ListaDeNotas />
      </section>
    );
  }
}

Dessa forma, você jamais teria acesso a variável this.teste.

Tente novamente imprimir a variável this.teste, mas agora atribuindo com o bind.

class App extends Component {

  constructor(){
    super();
    this.teste = "xxxx";
  }
  criarNota(titulo, texto){
    console.log(`uma nova nota foi criada ${titulo} ${texto}`);
    console.log(this.teste);
  }
  render() {
    return (
      <section className="conteudo">
        <FormularioCadastro criarNota={this.criarNota.bind(this)}/>
        <ListaDeNotas />
      </section>
    );
  }
}

Tente agora e verifique o resultado.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software