Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

const novoEstado = {...this.state, categorias:novoArrayCategorias};

Olá, fiquei com muitas duvidas nessa linha:

const novoEstado = {...this.state, categorias:novoArrayCategorias};

eu tenho costume de ir tentando fazer antes de assistir a "solução", pra ver se estou pensando da maneira correta e eu tinha feito isso e tinha funcionado:

this.setState({
      categorias: novoArrayCategorias
    })

Pode me explicar o motivo de usar spread operator para atualizar o estado? E o que pode dar errado se eu fizer direto sem usar o spread operator?

Muito obrigado.

1 resposta
solução!

Fala ai Sadraque, tudo bem? No caso de utilizar componentes de classes com o this.setState você pode fazer direto como tu fez.

A ideia de utilizar o spread seria pegar o estado antigo, criar um novo objeto com todos os dados atuais no estado e depois modificar o estado categorias.

Mas com o this.setState esse merge entre estado atual + novo é feito automaticamente, ou seja, apenas as propriedades informadas no this.setState serão alteradas, as demais permaneceram as mesmas.

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