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

[Dúvida] deletefavorite

Por que não podemos usar o setFavoritos inves de chamar a funcao fetch?

async function deleteFavorite(id) {
    await deleteBooksFavorites(id)
    // setFavorites([]) - dessa maneira?
    await fetchFavorites()
    alert(`Book deleted: ${id}`)
  }
1 resposta
solução!

Oii, Lucas! Tudo bem?

Nesse caso não é interessante chamar a função setFavorites([]) em vez de chamar a função fetchFavorites() porque a fetchFavorites() é responsável por buscar novamente os favoritos atualizados do servidor. E a setFavorites([]) vai definir uma lista de favoritos vazia sem afetar o servidor.

Ao chamar deleteBooksFavorites(id), estamos excluindo o livro favorito com o ID fornecido. Em seguida, chamamos fetchFavorites() para atualizar a lista de favoritos após a exclusão. Isso é necessário para garantir que a lista de favoritos exibida na interface do usuário esteja sempre sincronizada com o servidor.

Se chamássemos apenas setFavorites([]), estaríamos apenas definindo a lista de favoritos como vazia localmente, mas não estaríamos atualizando a lista de favoritos no servidor. Isso resultaria em uma inconsistência entre o estado local e o estado do servidor.

Para exemplificar, imagine que você tem uma agenda telefônica no seu celular para armazenar os contatos de amigos. Quando você remove um contato da agenda, você não quer apenas apagá-lo do seu celular; você também deseja garantir que a informação seja removida dos servidores da operadora, para manter a lista de contatos sempre atualizada e em sincronia. É por isso que é importante chamar a função fetchFavorites() após excluir um contato, para garantir que sua agenda esteja sempre correta e atualizada.

Espero ter ajudado a entender melhor.

Bons estudos, Artur!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!