Я заставляю реагировать на собственное приложение. Для авторизации я буду устанавливать заголовки по умолчанию, используя axios.
Код для установки заголовков
export default function setAuthToken(token){
if(token){
const head = 'Bearer '+token
axios.defaults.headers.common['autherization'] = head
}
else{
await delete axios.defaults.headers.common['autherization']
}
}
Код для получения токена
_retrieveData = async (key) => {
console.log('Getting you token')
console.log(key)
try {
const value = await AsyncStorage.getItem(key);
if (value !== null) {
console.log("got token")
// console.log(value);
await setHeader(value)
return value
}else{
console.log("no token")
return null
}
} catch (error) {
console.log('errerr token')
console.log(error)
return null
}
}
Здесь я пытаюсь запустить эти функции для установки заголовков непосредственно перед загрузкой приложения App.js
_retrieveData('token')
AppRegistry.registerComponent(appName,() => App);
Но проблема в том, что на первой странице моего приложения я делаю запрос axios к серверу в componentDidMount
, а заголовки не устанавливаются.Я записываю заголовки перед вызовом axios и вижу, что перед тем, как заголовки вызова axios установлены неправильно (токен является объектом, а не строкой), после того как запрос отправлен, заголовки установлены правильно.Почему он не ждет установки заголовков, я использую async / await