Fala Lucas, tudo bem?
Vou explicar passo a passo como a função utiliza, vamos lá:
Primeiramente, como vimos acima, recebemos o nosso evento através dessa váriavel e
(que pode ter qualquer nome) e com ela iremos trabalhar durante a função para que possamos pegar os valores dos input e afins.
Agora nessa segunda linha (linha 9) como vimos acima, ela estará fazendo uma desestruturação dos valores que recebemos de e.target
e pegando somente os valores name
e value
do nosso target
(que nesse caso é o nosso input). Você pode ver mais sobre a desestruturação de objetos nesse artigo da alura clicando aqui
Agora nessa nossa terceira linha (linha 10) o que estamos fazendo seria um "espelhamento" do nosso objeto que temos no nosso estado chamadoerros
(como podemos ver ali em cima) utilizando esses três pontinhos que se chama Operador Spread, ou seja, estamos clonando o objeto e atribuindo á variavel novoEstado
.
Nessa quarta linha (linha 11) estamos acessando o valor do nosso objeto utilizando colchetes (assim como acessamos uma array) com o parâmetro de name
que foi o que obtemos do nosso input (por exemplo, se fosse um input de cpf que possui um name "cpf" estariamos acessando novoEstado[cpf]) e assim estamos atribuindo á essa propriedade o retorno do método de validações (de acordo com o nosso name) passando o nosso value
, também obtidos do nosso input ali em cima. Então por exemplo, se o nosso name
for igual a cpf, estariamos acessando a função de validar cpf:
E então, logo acima, setamos o nosso estado como o valor novoEstado
que é a nossa váriavel agora que é um objeto que possui as informações se tem algum erro ou não.
Espero ter ajudado, bons estudos, se ainda permanecer na dúvida pode contar com a gente :D