Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Componente como props

Eu não sabia que era possível passar um estado de um componente para outro via props. Neste caso tenho duas dúvidas de iniciante:

1) Este componente ao receber o estado via props irá considerá-lo para as suas alterações no render? É isto mesmo?

2) Porque que ao alterar: this.state.lista.map(function(autor){ para this.props.lista.map(function(autor){ o componente TabelaAutores continua a acompanhar a mudança de estado? Essa mudança de state para props não atrapalha nisso?

2 respostas
solução!

Boa noite, Afrânio! Como vai?

Respondendo suas perguntas:

1) Este componente ao receber o estado via props irá considerá-lo para as suas alterações no render? É isto mesmo?

É isso aí!

2) Porque que ao alterar: this.state.lista.map(function(autor){ para this.props.lista.map(function(autor){ o componente TabelaAutores continua a acompanhar a mudança de estado? Essa mudança de state para props não atrapalha nisso?

Não atrapalha, tanto é verdade que tudo continua funcionando! O que ocorre é que ao mudar o estado do componente AutorBox o render() desse componente é disparado e, consequentemente, o render() dos componentes filhos também é disparado! Inclusive o render() do componente TabelaAutores que irá receber via props o novo estado do componente pai!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Entendi. No exemplo da aula, no momento em que o render do pai é disparado também é disparado o render dos filhos.

render(){
    return(
      <div>
        <FormularioAutor/>
        <TabelaAutores lista={this.state.lista}/>
      </div>
    );
  }

Obrigado!

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