2
respostas

Os botões funcionam mas não atualizam a estatística.

As estatisticas não atualizam ao clicar nos botões que estão funcionando como esperado. Com o dev tools do navegador eu pude observar o seguinte erro aparecendo no console:

Uncaught TypeError: Cannot read properties of undefined (reading 'forca') at script.js:57:76 at NodeList.forEach () at atualizaEstatisticas (script.js:56:18) at HTMLUnknownElement. (script.js:41:9) (anonymous) @ script.js:57 atualizaEstatisticas @ script.js:56 (anonymous) @ script.js:41

Aqui está o código js das funções referenciadas no console:

controle.forEach( (elemento) => {
elemento.addEventListener("click", (evento) => {
    manipulaDados(evento.target.textContent, evento.target.parentNode)
    atualizaEstatisticas(evento.target.dataset.controle)
})
    function manipulaDados(operacao, controle) {
    const peca = controle.querySelector("[data-contador]")

    if(operacao === '-') {
        peca.value = parseInt(peca.value) - 1
    } else {
        peca.value = parseInt(peca.value) + 1
    }
}
function atualizaEstatisticas(peca) {
    estatisticas.forEach( (elemento) => {
        elemento.textContent = parseInt(elemento.textContent) + pecas[peca][elemento.dataset.estatistica]
    })
}

Tentei postar o código completo mas ficou zoado.

2 respostas

Também estou com o mesmo problema, inclusive copiei o codigo javascript do professor postado no GitHub mas não consegui resolver. Alguma solução?

controle.forEach( (elemento) => {
    elemento.addEventListener("click", (evento) => {
        manipulaDados(evento.target.dataset.controle, evento.target.parentNode)
        atualizaEstatistica(evento.target.dataset.peca)

    })        

})

function manipulaDados(operacao, controle) {          

        const peca = controle.querySelector('[data-contador]')
        if(operacao === "-") {
            peca.value = parseInt(peca.value) -1
        } else {
            peca.value = parseInt(peca.value) +1
        }    

    }
 function atualizaEstatistica(peca) {

    estatistica.forEach( (elemento) => {
    elemento.textContext = parseInt(elemento.textContext) + pecas[peca][elemento.dataset.estatistica]

})

Também observei o mesmo problema.