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

Por que funciona?

Fiquei curioso para entender como o setState funciona por trás da cortina. Sendo que no projeto temos o state como um objeto com duas propriedades (notas e categoria):

this.state = {
      notas: [],
      categorias: [],
    };

E nas funções criarNota, adicionarCategoria, deletarNota setamos o estado atualizado mas passando apenas uma propriedade (notas OU categoria):

deletarNota(index) {
    let arrayNotas = this.state.notas;
    arrayNotas.splice(index, 1);
    this.setState({ notas: arrayNotas });
  }

Eu imaginaria que no caso acima por exemplo, o setState iria sobrescrever o estado inteiro pelo objeto recebido apenas com as notas, perdendo as informações das categorias. No entanto, aparentemente o setState é inteligente o bastante para manter tudo como estava e atualizar somente o que foi passado.

1 resposta
solução!

Fala ai Vinicius, tudo bem? o setState na verdade faz um merge do novo estado passado como parâmetro com o estado atual, basicamente ele cria uma cópia do estado antigo e altera apenas as propriedades passadas para a função, por fim, atualiza o estado no componente e renderiza o mesmo novamente.

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