6
respostas

Fica acusando que o meu forEach não é uma função

Copiei código certinho, mas fica dizendo que o forEach não é uma função

6 respostas

Oi Gabriel, tudo certo?

Normalmente isso acontece pois a variável que você está tentando dar o forEach não é um array.

Você pode mandar seu código aqui para eu conseguir te auxiliar melhor? Se for vários arquivos, pode subir no drive ou no github mesmo.

Abraços, bons estudos =)

https://drive.google.com/drive/folders/1nS94YS13SPOrbFv4drM3P2PjkWiEIF6f?usp=sharing

Ai está o link do projeto todo, mas o que foi alterado mesmo, foi no cliente-service.js, lista-Clientes.js, cadastra-Cliente-controller.js e lista-Cliente.html

Oi Gabriel, tudo certo?

Rodei o seu código aqui e consegui fazer o cadastro certinho do cliente e a listagem! Você poderia mostrar aonde está apontando erro? Em qual parte, ou linha do código exatamente?

Fico no aguardo, abraços =)

Gabriel, bom dia.

Conforme a Giovanna havia informado, o erro está ocorrendo pois a variável não é um array e o forEach é o método de Array. Assim como ocorreu com você, meu navegador também retornou que o forEach não era uma função.

Segue a solução:

Você pode converter a variável para um array utilizando "Array.from(variavel).forEach(..)"

No meu caso o problema aconteceu ao chamar o listaClientes() e utilizar o .then().

O código ficou assim:

.then(data => {
        Array.from(data).forEach(elemento => {
            tabela.appendChild(criaNovaLinha(elemento.nome, elemento.email))
        })

Gabriel,

apesar da solução acima ter eliminado o erro no console, não resolveu meu problema para que os dados do cliente fossem carregados.

Ontem estava funcionando como na aula e hoje ocorreu este problema. A solução foi habilitar o json server novamente utilizando "json-server --watch db.json" no terminal.

Após habilitar o servidor eu voltei o código para o que foi usado na aula e funcionou novamente.

Fala Gabriel, provavelmente ocorreu porque você executou o json server no diretório errado no terminal.

Escrevi sobre minha solução aqui:

https://cursos.alura.com.br/forum/topico-js-na-web-crud-com-js-assincrono-typeerror-data-foreach-is-not-a-function-como-solucionei-o-problema-173016