1 00:00:02,320 --> 00:00:09,040 Portanto, agora com o componente do item do produto reorganizado, é hora de podermos excluir os 2 00:00:09,040 --> 00:00:14,120 itens, porque essa é uma das coisas mais simples que podemos fazer. 3 00:00:14,170 --> 00:00:19,600 Isso nos leva de volta ao Redux e agora é hora de trabalhar nos produtos, e 4 00:00:19,600 --> 00:00:21,120 começarei as ações que 5 00:00:21,160 --> 00:00:26,450 atualmente são um arquivo vazio, os produtos. arquivo js na pasta actions em 6 00:00:26,560 --> 00:00:35,350 que desejo exportar uma ação que nos ajude a excluir produtos. Portanto, o identificador é simplesmente chamado de excluir produto e contém 7 00:00:35,350 --> 00:00:46,900 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 8 00:00:46,900 --> 00:00:53,430 em que o tipo é excluir produto e o pid, o ID do produto é simplesmente 9 00:00:53,440 --> 00:00:55,990 o ID do produto encaminhado, assim. 10 00:00:59,620 --> 00:01:07,990 Agora, no redutor, no arquivo redutor de produtos, podemos ouvir isso porque, atualmente, nunca 11 00:01:08,560 --> 00:01:17,110 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 12 00:01:17,230 --> 00:01:23,900 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 13 00:01:23,900 --> 00:01:29,840 produto da nossa matriz de produtos para usuários e, claro, também da matriz de produtos disponíveis, porque ela 14 00:01:29,840 --> 00:01:34,490 é excluída em geral, não apenas em nossos produtos para usuários, mas em todo 15 00:01:34,490 --> 00:01:35,290 o aplicativo. 16 00:01:37,990 --> 00:01:39,190 Portanto, aqui, 17 00:01:39,190 --> 00:01:48,100 retornarei um novo objeto em que copiamos o estado existente para garantir que não percam nenhum estado e agora os produtos do 18 00:01:48,100 --> 00:01:51,630 usuário são simplesmente estado. userProducts, portanto, os produtos 19 00:01:51,640 --> 00:01:57,070 de usuário antigos nos quais podemos filtrar, esse é um método Javascript interno que retorna 20 00:01:57,070 --> 00:02:04,640 uma nova matriz, uma nova matriz que basicamente é criada executando uma função em todos os itens da matriz antiga e se 21 00:02:04,660 --> 00:02:09,930 essa função retornar verdadeira , mantemos esse item; se ele retornar falso, descartamos o item. 22 00:02:10,000 --> 00:02:15,490 Portanto, isso executa uma função em que obtemos o produto, essa função é executada por 23 00:02:15,490 --> 00:02:20,720 Javascript, por assim dizer, e passa no item que está sendo analisado no momento. 24 00:02:20,800 --> 00:02:29,110 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 25 00:02:29,650 --> 00:02:33,390 pid, que é o ID do produto que queremos excluir. 26 00:02:33,400 --> 00:02:39,530 O que isso significa é que, basicamente, ele manterá todos os produtos onde os IDs não coincidem; se eles coincidem, sabemos 27 00:02:39,550 --> 00:02:41,890 que é o produto do qual queremos nos 28 00:02:41,890 --> 00:02:43,240 livrar e, portanto, retornamos 29 00:02:43,240 --> 00:02:46,340 false, o que significa que na nova matriz não será. incluído. 30 00:02:46,370 --> 00:02:50,890 Agora é essencialmente a mesma lógica para os produtos disponíveis; basta 31 00:02:50,900 --> 00:02:55,530 apenas passar por todos os produtos disponíveis e filtrar o produto por lá. 32 00:02:55,550 --> 00:03:01,090 Essa é uma alteração que precisamos fazer, outra alteração precisa ser feita no carrinho, no entanto, porque 33 00:03:01,090 --> 00:03:06,400 quando excluímos um produto, ele também deve ser removido do carrinho, pois, caso contrário, temos 34 00:03:06,400 --> 00:03:09,690 um produto no carrinho que não existe mais . 35 00:03:09,820 --> 00:03:17,410 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 36 00:03:17,410 --> 00:03:18,810 no carrinho. js 37 00:03:18,820 --> 00:03:20,290 reducer também e aqui, 38 00:03:23,060 --> 00:03:27,830 precisamos garantir que removemos o produto do carrinho, se ele foi excluído. 39 00:03:29,670 --> 00:03:36,150 Portanto, aqui no carrinho, é claro que obtemos nosso ID do produto que queremos 40 00:03:36,300 --> 00:03:47,940 excluir, é esse pid nessa ação que é despachada, portanto, aqui retornamos um novo estado em que queremos atualizar nosso carrinho e o valor total 41 00:03:47,950 --> 00:03:53,680 para que o produto acabe e acabe, quero dizer totalmente apagado do carrinho, 42 00:03:53,680 --> 00:04:01,920 não apenas reduzido por um, mas totalmente apagado. Portanto, itens está aqui no final, uma cópia 43 00:04:01,920 --> 00:04:02,760 dos 44 00:04:02,760 --> 00:04:12,610 itens existentes sem esse produto, por isso vou criar uma nova constante e atualizada, itens em que copio meus itens de 45 00:04:12,610 --> 00:04:13,910 estado existentes aqui, 46 00:04:15,010 --> 00:04:22,820 assim e excluo os itens atualizados para a ação pid, então eu excluo este item do carrinho. 47 00:04:22,820 --> 00:04:29,600 É claro que isso só faz sentido se esse item existir no carrinho, portanto, antes de tudo, verificarei se 48 00:04:29,750 --> 00:04:33,940 os itens de estado para ação pid, se isso retornar algo 49 00:04:34,220 --> 00:04:40,310 significativo e se não for o caso, retornarei apenas o estado existente porque então terminei este caso, 50 00:04:40,310 --> 00:04:44,750 não preciso alterar nada no estado, portanto, retornarei o estado existente sem alterações. 51 00:04:45,230 --> 00:04:46,840 Se eu ultrapassar isso, 52 00:04:46,850 --> 00:04:52,330 verifique, então sei que o produto com o ID que estamos prestes a excluir faz parte do item. 53 00:04:52,340 --> 00:05:00,790 Então, continuo copiando meus itens e excluo o produto de lá, mas antes disso, obtenho o 54 00:05:00,790 --> 00:05:11,970 total do item acessando itens de estado para a ação pid e depois lá, é claro que temos isso, se dermos uma 55 00:05:11,970 --> 00:05:20,150 olhada no carrinho modelo de item, quero dizer, temos esse campo de soma aqui, então, 56 00:05:20,150 --> 00:05:27,300 no final, preciso remover a soma. Estou interessado na soma porque agora posso atualizar meus itens 57 00:05:27,300 --> 00:05:34,440 com os itens atualizados, onde os excluí com a palavra-chave delete e o valor total do carrinho é o valor total do 58 00:05:34,620 --> 00:05:44,540 estado menos o total do item, portanto, o total desse carrinho item que havíamos adicionado antes. Portanto, agora também atualizamos o carrinho 59 00:05:44,540 --> 00:05:45,760 adequadamente 60 00:05:45,860 --> 00:05:50,600 quando o excluirmos. Agora só precisamos despachar essa exclusão; 61 00:05:50,660 --> 00:05:52,960 portanto, de volta aos 62 00:05:52,990 --> 00:06:00,170 produtos dos usuários, aqui em delete, queremos despachar. Portanto, a partir do React Redux, podemos importar 63 00:06:00,170 --> 00:06:04,140 o uso de despacho para obter acesso à função de 64 00:06:04,490 --> 00:06:12,290 despacho aqui, chamando o uso de despacho como fizemos várias vezes antes e, aqui, quando a exclusão é pressionada, 65 00:06:12,290 --> 00:06:12,980 podemos 66 00:06:12,980 --> 00:06:13,870 despachar nossa 67 00:06:13,880 --> 00:06:24,130 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 68 00:06:24,160 --> 00:06:29,650 pasta actions e do arquivo products e agora usamos a ação products lá 69 00:06:29,650 --> 00:06:36,100 em baixo quando a despachamos para chamar delete product e encaminhe o ID do produto, que 70 00:06:36,100 --> 00:06:40,340 obviamente é itemData. item. id aqui porque estamos 71 00:06:40,480 --> 00:06:46,830 analisando todos os produtos aqui e isso basicamente significa esse itemData. item refere-se a instâncias do nosso modelo de produto, 72 00:06:46,840 --> 00:06:51,870 cada instância tem uma propriedade de ID e estamos encaminhando isso para excluir o produto. 73 00:06:51,940 --> 00:06:58,900 Portanto, se tentarmos e formos para o administrador e clicar em excluir na camisa vermelha, ele foi parar aqui e, se 74 00:06:58,900 --> 00:07:01,960 eu voltar aos produtos, ele também caiu aqui. 75 00:07:02,200 --> 00:07:08,680 Agora, se recarregarmos isso e eu adicionar a camisa vermelha ao carrinho, veja aqui, eu a adicionei duas vezes. 76 00:07:08,680 --> 00:07:16,380 Agora, se eu for para o administrador e o excluir e voltar aos produtos e ao carrinho, o carrinho está vazio agora. 77 00:07:16,520 --> 00:07:23,090 Por outro lado, se eu adicionar, digamos agora o tapete e a caneca de café, volte para o administrador, 78 00:07:23,090 --> 00:07:28,460 exclua o tapete, mas não a caneca de café, você vê nos produtos, a caneca 79 00:07:28,520 --> 00:07:35,850 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 é 80 00:07:35,880 --> 00:07:41,240 algo que eu consertarei mais tarde, juntamente com o fato de que aqui, na verdade, vemos um sinal de menos agora para o total, 81 00:07:41,250 --> 00:07:43,680 isso também é algo que eu consertarei em um segundo. 82 00:07:43,680 --> 00:07:45,810 Antes de tudo, vamos garantir que, no 83 00:07:45,840 --> 00:07:52,830 entanto, na seção admin, vá para a tela de edição ou que também tenhamos um item lá em cima que nos 84 00:07:52,830 --> 00:07:54,720 permita adicionar um novo produto.