Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] localStorage não se mantém ao recarregar a página

Olá!

Acompanhei a aula e escrevi o código idêntico ao do instrutor, porém no meu navegador o local storage é zerado quando, após dar refresh na página, adiciono a próxima tarefa.

Notei que o método localStorage.setItem sempre carrega o array inteiro ao invés de apenas adicionar a tarefa nova e que o array tarefas é apagado quando reinicio a página. Não sei se esse é o problema. Tentei contornar esse problema utilizando o método getItem e incrementando a nova tarefa, mas sem sucesso...

const btAddTask = document.querySelector('.app__button--add-task');
const formAddTask = document.querySelector('.app__form-add-task');
const textoTarefa = document.querySelector('.app__form-textarea');

const tarefas = [];

btAddTask.addEventListener('click', () => {
    formAddTask.classList.toggle('hidden');
});

formAddTask.addEventListener('submit', (evento) => {
    evento.preventDefault();
    const tarefa = {
        descricao: textoTarefa.value,
    }
    tarefas.push(tarefa);
    localStorage.setItem('tarefas', JSON.stringify(tarefas));
})
2 respostas
solução!

Oi Gabriel, tudo bem?

O problema principal é que você está inicializando o array tarefas como vazio toda vez que a página é carregada. Pra resolver isso, você precisa carregar as tarefas do localStorage quando a página for carregada.

Você pode fazer isso alterando a sua const tarefas:

const tarefas = JSON.parse(localStorage.getItem("tarefas")) || [];

Dessa forma, ao carregar a página, o código verifica se já existem tarefas salvas no localStorage e as carrega no array tarefas. Quando você adiciona uma nova tarefa, ela é adicionada ao array existente e o localStorage é atualizado.

Isso você verá mais profundamente nas aulas seguintes.

Espero ter ajudado.

Um abraço e bons estudos.

Oi Lorena!

Obrigado! Depois eu vi que nas aulas seguintes esse "problema" foi tratado. Eu que fui ansioso...

Um abraço