Boa tarde,
Porque foi preciso criar um novo array com o novo colaborador? Se o array colaborador já pode conter todos os outros colaboradores adicionados recentemente?
Obrigado.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde,
Porque foi preciso criar um novo array com o novo colaborador? Se o array colaborador já pode conter todos os outros colaboradores adicionados recentemente?
Obrigado.
Salve! Beleza?
Vamos lá! O rolê com o useState no React é que ele não rastreia mudanças nas estruturas de dados mutáveis, como arrays e objetos, da mesma forma que faz com tipos primitivos. Por isso, quando você quer atualizar o estado que é um array, você tem que criar uma cópia desse array pra garantir que o React perceba a mudança.
Quando tu faz setColaboradores([...colaboradores, colaborador]), você tá criando um novo array que contém todos os colaboradores anteriores (...colaboradores) e adiciona o novo colaborador no final.
Se você tentasse apenas adicionar o novo colaborador ao array colaboradores diretamente e depois chamar setColaboradores, o React não iria pegar essa mudança direito e o componente não seria re-renderizado corretamente.
Então, a ideia de espalhar o array antigo e adicionar o novo item é pra garantir que você tá passando pro useState um novo array, fazendo com que o React entenda a mudança e atualize o componente de acordo.
Espero ter ajudado a esclarecer essa questão! Se tiver mais alguma dúvida, é só falar. Tamo junto!