Я хочу создать глобальный экземпляр axe ios с перехватчиком, который добавляет заголовок с токеном доступа. Токен доступа хранится у повара ie, но я не могу понять, как получить доступ к повару ie внутри перехватчика, поскольку он не является компонентом реакции.
Я попытался создать топор ios экземпляр в пользовательском хуке, как это:
import React, { useEffect, useState } from "react";
import { useCookies } from "react-cookie";
import axios from "axios";
function useApiClient() {
const [cookies, setCookie] = useCookies(["token"]);
const [client, setClient] = useState(null);
useEffect(() => {
setClient(
axios
.create({
baseURL: "http://localhost:8080/api/",
responseType: "json",
})
.interceptors.request.use(
(config) => {
console.log("setting up");
if (cookies["token"] != null) {
config.headers.authorization = cookies["token"];
}
},
(error) => Promise.reject(error)
)
);
}, [client]);
return client;
}
export default useApiClient;
Но когда я пытаюсь вызвать это, используя:
const client = useApiClient();
function attemptLogin() {
const credentials = {
username: username,
password: password,
};
client
.post("/authenticate", JSON.stringify(credentials), {
headers: {
"Content-Type": "application/json",
},
}).then(....)
, я получаю ошибку ниже:
TypeError: client.post не является функцией
Может кто-нибудь помочь?