3
respostas

Problemas com carrinho após último módulo

Olá, pessoal!

Terminei este curso, porém, estou com um problema depois da atualização dos widgets de Stateless para Stateful. Antes do último módulo, a adição de itens ao carrinho estava funcionando normalmente. Porém, agora ao adicionar um item ao carrinho (uma mesa, por exemplo), voltar pro início e adicionar o mesmo item, ao invés dele ser adicionado à contagem do original, ele cria um novo elemento no carrinho, conforme print a seguir:

https://imgur.com/a/T4eIvvf

As mudanças realizadas da aula 9 pra anterior podem ser vistas aqui: https://github.com/anacarolinahernandes/aluramoveis-flutter/compare/main...feature/carrinho

O projeto todo está aqui: https://github.com/anacarolinahernandes/aluramoveis-flutter

Podem me ajudar? Já comparei todas as mudanças com a da instrutora (https://github.com/alura-cursos/lojinha_alura/compare/aula8...aula9) e não consigo localizar onde estou errando :(

3 respostas

Oi Ana, tudo bem?

Baixei o seu código aqui e executei. Não consegui simular o seu erro. Isso significa que ao trocar de stateless para statefull alguma coisa pode não ter atualizado corretamente no emulador. Tente desinstalar o app do emulador executar novamente o código.

Caso não funcione, uma diferença que notei do seu código para o da professora é que você quebrou a sua main em uma outra página chamada Home. Essa forma de organização também é correta e foi muito legal ver que você deu o seu toque de organização ao código. É muito importante fazer isso para aprender e treinar :).

No main.dart da Maria, ela colocou o static List<ItemCarrinho> itensCarrinho = List(); dentro de um widget chamado Inicio que é Stateful. Quando você criou a página home.dart acabou criando o widget Home como Stateless.

Repare o código da Maria aqui e o seu aqui.

Um forte abraço, e, qualquer coisa é só chamar! :)

Oi, Leonardo! Tudo bem por aqui e por aí?

Cara, dei uma boa lida no que você escreveu e revi passo por passo novamente, inclusive, desinstalei o aplicativo do emulador e fiz tudo novamente.

Acredito que encontrei onde está o problema. A duplicidade começa a ocorrer no carrinho quando insiro esse then aqui no MaterialPageRoute do ElementGridProducts.

A questão é: sem esse then, o problema da duplicidade no carrinho não ocorre, porém, o indicador do botão não funciona como esperado.

Poderia testar novamente e me ajudar a encontrar a solução para que tudo funcione redondinho (o indicador do botão e a não duplicidade do carrinho)?

Agradeço desde já!

EDIT: baixei o projeto da instrutora e o mesmo erro de duplicidade no carrinho acontece também.

Huuuuum interessante o seu relato! Vou puxar o código novamente para olhar. Consegue me dar um passo a passo exato, se possível filmar a tela do que você faz para disparar o erro? Eu tentei aqui adicionar no carrinho, entrar nele, aumentar a quantidade no +, voltei pra página inicial e tentei adicionar novamente o item. Nenhuma combinação dessas bateu. Provavelmente eu criei algum vício de uso que não faço o que precisa para achar o erro hahaha (acontece...).

Assim consigo fazer exatamente como você para gente descobrir o que pode ser, juntos! Que tal?