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

[Sugestão] Getters para atualizar o valor total do carrinho

Fiz de outra maneira, utilzei getters com o @computed para que o valor fosse atualizado na tela:

// Obs: meu _items está privado, porque eu criei um getter para ele (items)
@computed
  double get sumTotal =>
      _items.fold<double>(0.0, (acc, item) => acc + item.preco);

  @computed
  String get formattedTotal => sumTotal.toStringAsFixed(2).replaceAll('.', ',');

Também adicionei uma função para formatar o total em String, padronizando as casas decimais para o PT-BR.

Para acessar o campo na tela, chamo o get formattedTotal :

[...]

 Align(
      alignment: Alignment.centerRight,
      child: Text(
        "R\$ ${cartStore.formattedTotal}",
        style: TextStyle(
            fontSize: 16,
            color: Theme.of(context)
                .colorScheme
                .onPrimary,
            ),
      ),
),

[...]

1 resposta
solução!

Olá Cleiton! Tudo bem?

Que interessante a abordagem que você utilizou!. Utilizar @computed com getters é uma maneira elegante de garantir que o valor seja sempre atualizado automaticamente quando houver alterações nos itens do carrinho.

Muito obrigada por compartilhar sua solução com a comunidade Alura. Assim, você ajuda outros estudantes!

Conte com o apoio do fórum em sua jornada :)

Um abraço e bons estudos!

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