4
respostas

Erro no forEach

Uncaught ReferenceError: id is not defined at criaNovaLinha (cliente-service.js:10) at cliente-service.js:33 at Array.forEach () at XMLHttpRequest.http.onload (cliente-service.js:32)

erro mesmo, quando eu baixo o programa pronto e acessar no browser, por favor me ajuda

4 respostas

Fala ai Marcos, tudo bem? Consegue compartilhar o trecho de código completo? Apenas falando sobre o problema é bem complicado ajudar e pensar sobre a causa do problema.

Fico no aguardo.

Matheus,

Boa noite!

Segue o código complento

const criaNovaLinha = (nome, email) => {

    const linhaNovoCliente = document.createElement('tr')
    const conteudo = `
    <td class="td" data-td>${nome}</td>
    <td>${email}</td>
    <td>
        <ul class="tabela__botoes-controle">
            <li><a href="../telas/edita_cliente.html?id=${id}" class="botao-simples botao-simples--editar">Editar</a></li>
            <li><button class="botao-simples botao-simples--excluir" type="button">Excluir</button></li>
        </ul>
    </td>`

    linhaNovoCliente.innerHTML = conteudo
    return linhaNovoCliente

}

const tabela = document.querySelector('[data-tabela]')

const http = new XMLHttpRequest()

http.open('GET', 'http://localhost:3000/profile')

http.send()

http.onload = () => {
    const data = JSON.parse(http.response)
    data.forEach(elemento => {
        tabela.appendChild(criaNovaLinha(elemento.nome, elemento.email))
    })
}

Fala Marcos, qual está sendo o retorno no body da API? Tente logar o data:

http.onload = () => {
    const data = JSON.parse(http.response)
    console.log(data)
    data.forEach(elemento => {
        tabela.appendChild(criaNovaLinha(elemento.nome, elemento.email))
    })
}

Provavelmente a resposta deve ser um objeto do qual você precisa acessar uma propriedade para depois fazer o forEach.

Espero ter ajudado

Fala Marcos!

Acho que o seu problema é nesta const conteúdo, na primeira "li" dentro da tag "a" tenta retirar o ?id=${id} do href que deve funcionar.

Abraços!