Задать вопрос
SonyFan23
@SonyFan23

Как сделать так, чтобы запросы шли, после установки токена?

Подскажите как сделать так, чтобы запросы шли, после установки токена?

Этот код, просто получает токен и устанавливает его в настйроки axios
getAuthToken(uuid: any) {
        return instance.post(`/account/auth_token?deviceId=${uuid}`, {
            headers: {'Accept': 'text/plain'},
        })
            .then(res => instance.defaults.headers.common['Authorization'] = `Bearer ${res.data}`)
            .catch(e => console.log(e));
    },


В классе App в компоненте жизненного цикла я вызываю санку в которой в которой я выполняю запрос выше:

class App extends PureComponent<IAppProps> {

    componentDidMount(): any {
        console.log(this.props);
        this.props.getToken();
        
    }
    render() {
        return (
            <div className="App">
                <Route component={IntroSlider} path="/changePath" exact/>
                <Route component={BeginningWork} path="/start"/>
                <Route component={Work} path="/"/>
            </div>
        );
    }
}


И в компоненте Work, я делаю уже запрос за данными, только вот, проблема, в том, что заголовок, отвечающий за авторизацию сетается после запросов.

И получаю я три undefined, вместо данных и следом выводится мой заголовок
nHeNo-zim9g.jpg

Подскажите, как решить данную? Как подождать пока заголовок засетается и потом уже делать запросы на сервер?
  • Вопрос задан
  • 43 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Не вижу используете ли вы контекст или редакс.
Устанавливайте флаг isAuthorized и рисуйте компонент, который делает запросы только если этот флаг стоит, тогда получится слать запросы на componentDidMount ну или рисуйте и проверяйте при монтировании или при апдейте пропертей стоит ли этот флаг.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы