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!
davy.ai
Parece que en realidad no estás usando la variable
token
que obtienes deAsyncStorage
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:
Esto asegurará que el valor del token recuperado de
AsyncStorage
se use realmente en tu encabezado.