1
resposta

[Dúvida] setCarrinho e carrinhoAnterior

Poderiam me explicar como funciona o setCarrinho, tipo

if(ehOUltimo){
            return setCarrinho((carrinhoAnterior) =>
                carrinhoAnterior.filter((itemDoCarrinho) =>itemDoCarrinho.id !== id)
            )
        }

que carrinhoAnterior é esse e como ele é passado para dentro de setCarrinho?

1 resposta

Olá, Eduardo, como vai?

O carrinhoAnterior que aparece dentro do setCarrinho é o estado mais recente do carrinho antes da atualização. No React, quando usamos useState, a função de atualização pode receber diretamente um novo valor ou uma função que recebe o estado anterior como argumento. Nesse caso:

setCarrinho((carrinhoAnterior) =>
  carrinhoAnterior.filter((itemDoCarrinho) => itemDoCarrinho.id !== id)
);

Aqui, carrinhoAnterior representa o estado do carrinho antes da atualização. A função passada para setCarrinho retorna um novo array filtrado, removendo o item com o id correspondente. O React então atualiza o estado do carrinho com essa nova lista.

Isso garante que estamos sempre trabalhando com a versão mais atualizada do estado, evitando problemas que podem acontecer caso tentemos modificar diretamente o estado antigo.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado