OIá, Wagner!
O instrutor faz uma refatoração no código, e ao invés de passar só o array, ou seja, this.categorias
, da classe Categorias, agora ele passa toda a classe, com seus atributos e métodos, tudo isso para associar os dois métodos, inscrever()
e notificar()
, com a lista de categorias. As informações de categorias continuam vindo do array de categorias, só que agora o componente lista de categorias não recebe só o array mas sim todo o objeto Categorias, isto é, da classe Categorias.
Para usar o método inscrever é preciso que tenhamos certeza que o objeto já tenha sido criado, por isso o uso do componentDidMount() . A explicação sobre o ciclo de vida dos componentes React é um pouco complicada para explicar por aqui, por isso eu deixo um Alura+ muito bom sobre esse assunto Aqui.
Para fazer a notificação é preciso passar um evento para o método notificar, e esses eventos são funções. Por isso existe func => func(this.categorias)
, pois, o método notificar()
vai receber uma função e passar this.categorias
para ela, e a função que foi passada para notificar()
se encarrega de executar o que tiver que ser feito. No caso, como tá dentro de um forEach()
essa tarefa será executada para cada item do array ao qual o forEach()
está associado. Se quiser saber mais sobre esse tipo de função só clicar aqui.
Espero ter ajudado! Abraços.