poderiamos utilizar o método push() no função adicionar categoria?
poderiamos utilizar o método push() no função adicionar categoria?
Olá, Vitor, tudo bem?
Poderíamos utilizar o push()
, mas teria que ser no novoArrayCategorias
criado dentro da função, assim:
adicionarCategoria(nomeCategoria) {
const novoArrayCategorias = [...this.state.categorias];
novoArrayCategorias.push(nomeCategoria);
const novoEstado = { ...this.state, categorias: novoArrayCategorias };
this.setState(novoEstado);
}
O código é equivalente ao da aula e poderíamos dizer que a forma que o instrutor fez é um pouco mais direta. Mas se você perguntava se poderíamos utilizar o push()
diretamente em this.state.categorias
, não podemos fazer isso, pois só podemos alterar alguma propriedade do state utilizando setState()
. Na verdade, se você alterar o state diretamente, o state é até alterado, mas a atualização não é refletida na interface.
E note que no código acima, ainda mantive o uso do spread operator por ser uma forma prática de copiar um array. Mas note que independentemente do método que utilizemos para copiar this.state.categorias
, só podemos dar push()
na cópia do array.
Espero ter ajudado! Bons estudos :)
Vitor, estou fechando o tópico devido ao tempo da postagem. Se sua dúvida persistir, pedimos que abra outro tópico!