Чтобы получить данные из API, мне нужно отправить токен jwt в заголовок вызова.Я сохраняю его в локальном хранилище после того, как получаю его в своем приложении, и когда я проверяю консоль браузера, я вижу, что сохранение работает - я вижу, как оно появляется в консоли, когда я выполняю localStorage.getItem ('token').) там.Но когда я пытаюсь добавить его в мой вызов API, я получаю сообщение об ошибке, так как jwt не найден.Ясно, что запрос get выполняется до того, как моя логика получения их токена из локального хранилища будет выполнена. Ниже приведен мой код.Любые советы о том, как обойти это было бы оценено.Спасибо !
const url = 'https://url.com';
const token = localStorage.getItem('token');
const AuthStr = 'Bearer '.concat(token);
export default class TestCall extends React.Component {
constructor(props) {
super(props);
this.state = {
error: undefined,
isLoaded: false,
items: [],
};
this.getData = this.getData.bind(this);
}
componentDidMount() {
this.getData();
}
getData () {
return fetch(url, {
method: 'GET',
headers:{
Accept: 'application/json',
'Content-Type': 'application/json',
},
Authorization: "Bearer " + AuthStr,
})
.then(res => res.json())
.then(
(result) => {
this.setState({
isLoaded: true,
items: result
});
},
(error) => {
this.setState({
isLoaded: true,
error
});
}
)
}
render() {
const { error, isLoaded, items } = this.state;
if (error) {
return <div>Error: {error.message}</div>;
} else if (!isLoaded) {
return <div>Loading...</div>;
} else {
return (
<p>{items} </p>
);
}
}
}
ОБНОВЛЕНИЕ:
в соответствии с полученным ответом я изменил свой код вверху:
const token = localStorage.getItem('token');
Я удалилconst AuthStr.поэтому мой запрос на получение сейчас:
headers:{
Accept: 'application/json',
'Content-Type': 'application/json',
},
Authorization: "Bearer " + token,
})
Это должно было исправить опечатку, но ответ, который я получаю, все еще не найден.