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

método JSON.stringify chamado 2x - localStorage gravando incorretamente o formato das transações

Após fazer a chamada dentro de Conta.ts ao método static "salvar" da classe Armazenador : Armazenador.salvar("transacoes", JSON.stringify(this.transacoes))

observei que estava salvando as transações no formato errado no localStorage ao dar refresh na página para testar a aplicação dava erro relacionado ao array de transações

Então percebi que o código do curso ficou fazendo o JSON.stringify 2x em 2 momentos dentro e fora do método Armazenador.salvar Tanto na linha acima na classe Conta.ts

como na classe Armazenador.ts na linha : const valorComoString = JSON.stringify(valor)

1 resposta
solução!

Olá, Célio! Tudo bem?

Obrigada por nos avisar desse problema! Acabei não percebendo enquanto desenvolvia o projeto que ao dar refresh os valores do extrato apareciam errado. Quando você chama JSON.stringify duas vezes, o que acontece é que a primeira chamada transforma o objeto em uma string JSON, e a segunda chamada transforma essa string JSON em uma string comum, o que pode causar problemas quando você tenta recuperar e usar esses dados posteriormente.

A solução para o seu problema seria garantir que JSON.stringify seja chamado apenas uma vez. Você pode fazer isso removendo a chamada JSON.stringify de um dos dois lugares.

Por exemplo, você poderia alterar o código na classe Conta.ts para:

Armazenador.salvar("transacoes", this.transacoes);

E manter a chamada JSON.stringify na classe Armazenador.ts:

const valorComoString = JSON.stringify(valor);

Desta forma, JSON.stringify será chamado apenas uma vez, quando os dados forem realmente salvos, e os dados serão armazenados corretamente no formato JSON no localStorage.

Espero ter ajudado e bons estudos! Novamente, obrigada por avisar no fórum, com certeza seu tópico vai ajudar outros estudantes do curso quando se depararem com o problema. Vou pensar em uma atividade para complementar o curso nessa parte também ^^