1
resposta

Undefined nome e email

Quando clico pra editar vai direitinho pra página de edição, mas não aparece nem o nome nem o email do cliente. Nos dois campos aparece undefined.

Função atualizar cliente que está no clienteService.js

const atualizaCliente = (id, nome, email) => {
  return fetch(`http://localhost:3000/profile/${id}`, {
    method: 'PUT',
    headers: {
      'Content-type' : 'application/json'
    },
    body: JSON.stringify({
      nome: nome,
      email: email
    })
  })
  .then(resposta => {
    return resposta.json()
  })
}

Arquivo atualizaCliente-controller.js:

import { clienteService } from "../service/cliente-service.js"

const pegaURL = new URL (window.location)

const id = pegaURL.searchParams.get('id')

const inputNome = document.querySelector('[data-nome]')
const inputEmail = document.querySelector('[data-email]')

clienteService.detalhaCliente(id)
.then(dados => {
  inputNome.value = dados.nome;
  inputEmail.value = dados.email;
})

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

formulario.addEventListener('submit', (evento) => {
  evento.preventDefault()

  clienteService.atualizaCliente(id, inputNome.value, inputEmail.value)
  .then(() => {
    window.location.href = "../telas/edicao_concluida.html"
  })
})
1 resposta

Fala ai Victoria, tudo bem? Falando assim sem ver o problema ou o fluxo completo é complicado.

Tente dar uma olhada em como você está montando as informações na tela e logar os objetos cujo você lê as propriedades.

Tente logar aqui:

clienteService.detalhaCliente(id)
.then(dados => {
    console.log(dados)
  inputNome.value = dados.nome;
  inputEmail.value = dados.email;
})

Pode ser que o dados não tenha as proprieades nome e email por alguma razão.

Verifique se a função detalhaCliente está retornando o objeto corretamente também.

Espero ter ajudado.