Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

123
Visualizações
React.js Intentando acceder a la respuesta de una búsqueda de API que funciona y devuelve datos en mi /api pero no puedo acceder en mi /src/

Creo que probablemente me estoy perdiendo algo bastante simple.

en src/api/index.js tengo lo siguiente:

 export async function loginUser(username, password) { try { const response = await fetch(`${BASE}/users/login`, { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ user: { username: username, password: password } }) }) .then(response => response.json()) .then(result => {console.log(result) const key = result.data.token localStorage.setItem('stToken', JSON.stringify(key)) localStorage.setItem('username', JSON.stringify(username)) }) return response } catch (error) { console.log(error); } }

Mi loginUser está siendo llamado en mi controlador onSubmit en mi src/component/login.js

 const submitHandler = async (event) => { event.preventDefault() setUserData( {username, password}) const response = await loginUser(username, password) alert({response}) console.log(response.data) }

Esta llamada API regresa de la función loginUser, cuando onSubmit la llama:

 {success: true, error: null, data: {…}} data: {token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2M…TU2fQ.4l7g5y8hlEDxlmkWUPiVIfM6XWCqHa0410QXGLy72vw', message: 'Thanks for logging in to our service.'} error: null success: true [[Prototype]]: Object

Sin embargo, sea lo que sea que intente acceder a los datos devueltos desde submitHandler (como console.log o cualquier variación de response.data.token que intente, obtendré un valor nulo. A partir de ahora, la única forma en que puedo acceder a cualquier API devuelve en mi carpeta API son a través del almacenamiento local.

Por favor, ayúdame a identificar lo que me estoy perdiendo.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En primer lugar, está utilizando ambas promesas ( .then ) y async await .

Cuando await el fetch.then.then , en realidad espera el último valor devuelto. En su caso, dado que no devuelve nada ( undefined ) de su último .then , no puede acceder a los datos.

Intenta devolver el resultado -

 const response = await fetch(`${BASE}/users/login`, {...}) .then(response => response.json()) .then(result => {console.log(result) const key = result.data.token localStorage.setItem('stToken', JSON.stringify(key)) localStorage.setItem('username', JSON.stringify(username)) return result; // this is the line I added })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda