es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comportamiento asíncrono al renderizar datos en encabezados.

Estoy tratando de obtener el “token” de localstorage en mi aplicación de react-native. Cada vez que ejecuto el código a continuación, el token se pasa correctamente.

const setHeaders = () => {
    const header = {
      headers: {
        Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MWNjZjk2MmYxYjkxZDEzMDQ3NmU3NWEiLCJyb2xlIjoidXNlciIsInVzZXJuYW1lIjoiSnV3b25fSmF2YSIsImVtYWlsIjoiZmFkZXlpYmkyNkBnbWFpbC5jb20iLCJpYXQiOjE2NDEzODA4OTAsImV4cCI6MTY0MTk4NTY5MH0.R_8Yum7s3DuQ7yulSYsNRWRkWGuCTxB_jq39hVn9iQA"
      }
    }
    return header
}

Pero en el momento en que agrego async para obtener el código de “AsyncStorage”, parece no funcionar, pero el token se muestra en la consola si quiero mostrarlo. Realmente estoy confundido, alguien debería ayudarme. Este es el código async a continuación:

const setHeaders = async() => {
    const token = await AsyncStorage.getItem('token');
    console.log('setToken', token) // envía el token a la consola pero no al encabezado
    const header = {
      headers: {
        // Authorization: token
        Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MWNjZjk2MmYxYjkxZDEzMDQ3NmU3NWEiLCJyb2xlIjoidXNlciIsInVzZXJuYW1lIjoiSnV3b25fSmF2YSIsImVtYWlsIjoiZmFkZXlpYmkyNkBnbWFpbC5jb20iLCJpYXQiOjE2NDEzODA4OTAsImV4cCI6MTY0MTk4NTY5MH0.R_8Yum7s3DuQ7yulSYsNRWRkWGuCTxB_jq39hVn9iQA"
      }
    }
    return header
}

¡Por favor, ayúdame por favor!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que en realidad no estás usando la variable token que obtienes de AsyncStorage en tu encabezado. En su lugar, simplemente estás codificando un valor de token.

    Para solucionar esto, puedes actualizar tu código de la siguiente manera:

    const setHeaders = async() => {
      const token = await AsyncStorage.getItem('token');
      console.log('setToken', token);
      const header = {
        headers: {
          Authorization: `Bearer ${token}` // utiliza el valor real del token aquí
        }
      }
      return header;
    }
    

    Esto asegurará que el valor del token recuperado de AsyncStorage se use realmente en tu encabezado.

Comments are closed.