1
resposta

[Bug] Remoção de item que não foi selecionado

Galera,

Quando fui testar o código da aula, percebi que ao selecionar vários itens e tentar retirar um dos primeiros que eu selecionei, sempre o último item é excluído da lista.

Isso está ocorrendo por causa da função que verifica pelo index da lista se o item está ou não presente dentro da mesma.

novaLista.splice(novaLista.indexOf(novoFavorito), 1);

Quando você retira um item do início da lista, todos os outros index são atualizados, acabando com a verificação de forma correta.

Para contornar isso, utiliza essa função:

return setFavorito(novaLista.filter(fav => fav.id !== novoFavorito.id));

vlw!

1 resposta

Olá, Luiz.

Tudo bem?

Obrigado por compartilhar sua dúvida com a gente. Realmente, o código que você compartilhou está com um bug que acaba excluindo o último item da lista ao invés do item selecionado.

A solução que você encontrou é muito boa! Utilizar a função filter para remover o item selecionado é uma alternativa mais segura e eficiente.

Sempre é bom lembrar que a programação é um processo de tentativa e erro, e bugs como esse podem acontecer. O importante é estar sempre aberto a aprender e buscar soluções para os problemas que surgem.

Espero ter ajudado e bons estudos!