Где установить заголовки по умолчанию, чтобы они устанавливались первыми даже до загрузки страницы. - PullRequest
0 голосов
/ 04 октября 2018

Я заставляю реагировать на собственное приложение. Для авторизации я буду устанавливать заголовки по умолчанию, используя 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

...