Portanto, agora com o componente do item do produto reorganizado, é hora de podermos excluir os
itens, porque essa é uma das coisas mais simples que podemos fazer.
Isso nos leva de volta ao Redux e agora é hora de trabalhar nos produtos, e
começarei as ações que
atualmente são um arquivo vazio, os produtos. arquivo js na pasta actions em
que desejo exportar uma ação que nos ajude a excluir produtos. Portanto, o identificador é simplesmente chamado de excluir produto e contém
um texto para excluir aqui. Também exportarei um criador de ação para excluir o produto que leva o ID do produto, como este, e que retorna um objeto de ação
em que o tipo é excluir produto e o pid, o ID do produto é simplesmente
o ID do produto encaminhado, assim.
Agora, no redutor, no arquivo redutor de produtos, podemos ouvir isso porque, atualmente, nunca
estamos nos importando com nenhuma ação. Agora, podemos ativar o tipo de ação aqui e lidar com o caso de excluir o produto obtido
do arquivo de ação de nossos produtos e, portanto, você precisará adicionar essa importação. Se excluir o produto for o caso, precisamos remover o
produto da nossa matriz de produtos para usuários e, claro, também da matriz de produtos disponíveis, porque ela
é excluída em geral, não apenas em nossos produtos para usuários, mas em todo
o aplicativo.
Portanto, aqui,
retornarei um novo objeto em que copiamos o estado existente para garantir que não percam nenhum estado e agora os produtos do
usuário são simplesmente estado. userProducts, portanto, os produtos
de usuário antigos nos quais podemos filtrar, esse é um método Javascript interno que retorna
uma nova matriz, uma nova matriz que basicamente é criada executando uma função em todos os itens da matriz antiga e se
essa função retornar verdadeira , mantemos esse item; se ele retornar falso, descartamos o item.
Portanto, isso executa uma função em que obtemos o produto, essa função é executada por
Javascript, por assim dizer, e passa no item que está sendo analisado no momento.
Portanto, obtemos o produto de cada produto em nossa matriz de produtos para usuários e queremos retornar o ID do produto, diferente da ação
pid, que é o ID do produto que queremos excluir.
O que isso significa é que, basicamente, ele manterá todos os produtos onde os IDs não coincidem; se eles coincidem, sabemos
que é o produto do qual queremos nos
livrar e, portanto, retornamos
false, o que significa que na nova matriz não será. incluído.
Agora é essencialmente a mesma lógica para os produtos disponíveis; basta
apenas passar por todos os produtos disponíveis e filtrar o produto por lá.
Essa é uma alteração que precisamos fazer, outra alteração precisa ser feita no carrinho, no entanto, porque
quando excluímos um produto, ele também deve ser removido do carrinho, pois, caso contrário, temos
um produto no carrinho que não existe mais .
Portanto, aqui também adicionarei um caso para excluir o produto e, portanto, você precisará importar o produto para excluir das ações de produtos
no carrinho. js
reducer também e aqui,
precisamos garantir que removemos o produto do carrinho, se ele foi excluído.
Portanto, aqui no carrinho, é claro que obtemos nosso ID do produto que queremos
excluir, é esse pid nessa ação que é despachada, portanto, aqui retornamos um novo estado em que queremos atualizar nosso carrinho e o valor total
para que o produto acabe e acabe, quero dizer totalmente apagado do carrinho,
não apenas reduzido por um, mas totalmente apagado. Portanto, itens está aqui no final, uma cópia
dos
itens existentes sem esse produto, por isso vou criar uma nova constante e atualizada, itens em que copio meus itens de
estado existentes aqui,
assim e excluo os itens atualizados para a ação pid, então eu excluo este item do carrinho.
É claro que isso só faz sentido se esse item existir no carrinho, portanto, antes de tudo, verificarei se
os itens de estado para ação pid, se isso retornar algo
significativo e se não for o caso, retornarei apenas o estado existente porque então terminei este caso,
não preciso alterar nada no estado, portanto, retornarei o estado existente sem alterações.
Se eu ultrapassar isso,
verifique, então sei que o produto com o ID que estamos prestes a excluir faz parte do item.
Então, continuo copiando meus itens e excluo o produto de lá, mas antes disso, obtenho o
total do item acessando itens de estado para a ação pid e depois lá, é claro que temos isso, se dermos uma
olhada no carrinho modelo de item, quero dizer, temos esse campo de soma aqui, então,
no final, preciso remover a soma. Estou interessado na soma porque agora posso atualizar meus itens
com os itens atualizados, onde os excluí com a palavra-chave delete e o valor total do carrinho é o valor total do
estado menos o total do item, portanto, o total desse carrinho item que havíamos adicionado antes. Portanto, agora também atualizamos o carrinho
adequadamente
quando o excluirmos. Agora só precisamos despachar essa exclusão;
portanto, de volta aos
produtos dos usuários, aqui em delete, queremos despachar. Portanto, a partir do React Redux, podemos importar
o uso de despacho para obter acesso à função de
despacho aqui, chamando o uso de despacho como fizemos várias vezes antes e, aqui, quando a exclusão é pressionada,
podemos
despachar nossa
ação e, é claro, precisamos para importar essa ação, então vamos fazer isso, vamos importar talvez tudo como ações de produtos da pasta store, da
pasta actions e do arquivo products e agora usamos a ação products lá
em baixo quando a despachamos para chamar delete product e encaminhe o ID do produto, que
obviamente é itemData. item. id aqui porque estamos
analisando todos os produtos aqui e isso basicamente significa esse itemData. item refere-se a instâncias do nosso modelo de produto,
cada instância tem uma propriedade de ID e estamos encaminhando isso para excluir o produto.
Portanto, se tentarmos e formos para o administrador e clicar em excluir na camisa vermelha, ele foi parar aqui e, se
eu voltar aos produtos, ele também caiu aqui.
Agora, se recarregarmos isso e eu adicionar a camisa vermelha ao carrinho, veja aqui, eu a adicionei duas vezes.
Agora, se eu for para o administrador e o excluir e voltar aos produtos e ao carrinho, o carrinho está vazio agora.
Por outro lado, se eu adicionar, digamos agora o tapete e a caneca de café, volte para o administrador,
exclua o tapete, mas não a caneca de café, você vê nos produtos, a caneca
de café ainda está no carrinho, o que fez trabalhos. A propósito, você pode notar que a caneca de café está um pouco cortada aqui, isso é
algo que eu consertarei mais tarde, juntamente com o fato de que aqui, na verdade, vemos um sinal de menos agora para o total,
isso também é algo que eu consertarei em um segundo.
Antes de tudo, vamos garantir que, no
entanto, na seção admin, vá para a tela de edição ou que também tenhamos um item lá em cima que nos
permita adicionar um novo produto.