1
resposta

Arrays infinitos

Bom dia,

Estou parte de re-fatorar o código, porém cada vez que eu digito algo no input e salvo, criam-se arrays vazias e minha página fica assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue meu código:

const form = document.getElementById("novoItem")
const lista = document.getElementById("lista")
const itens = JSON.parse(localStorage.getItem ("itens")) || []

itens.forEach( (elemento) => {
    criaElemento(elemento)
})

form.addEventListener("submit", (evento) => {
    evento.preventDefault()

    const nome =evento.target.elements['nome']
    const quantidade = evento.target.elements['quantidade']

    const itemAtual = {
        "nome": nome.value,
        "quantidade": quantidade.value
    }

    criaElemento(itemAtual)

    itens.push(itemAtual);

    localStorage.setItem("itens", JSON.stringify(itens))

   nome.value = ""
   quantidade.value = ""

})

function criaElemento(item) {
    const novoItem = document.createElement('li')
    novoItem.classList.add("item")

    const numeroItem = document.createElement('strong')
    numeroItem.innerHTML = item.quantidade

    novoItem.appendChild(numeroItem)
    novoItem.innerHTML += item.nome

    lista.appendChild(novoItem)

    const itemAtual = {
        "nome": nome,
        "quantidade": quantidade
    }

    itens.push(itemAtual);

    localStorage.setItem("itens", JSON.stringify(itens))
}

Conto com a ajuda devocês, isso tá me atrapalhando muito a continuar :/ Obrigado!

1 resposta

Oi André, pelo o que eu entendi, isso acontece porque na linha que voce declara a const itens se nao tiver um "localStorage.getItem ("itens"))" ele cria um array, e no forEach ele chama a funcao criaElemento, que cria uma li, dessa forma acho que o erro pode estar nessa linha que voce declara a const itens.

Espero ter passado alguma ajuda, se nao ajudou pode falar hehe, que a gente vai olhando com mais calma ate encontrar o erro?

E so uma duvida, porque se nao existir no localStorage.getItem ("itens")) voce cria um array?