Не удается найти переменную: токен

#javascript #reactjs #react-native

#javascript #reactjs #реагировать — родной

Вопрос:

Я пытаюсь получить данные из API конечной точки с помощью axios, но появляется эта ошибка: не могу найти токен, не могли бы вы мне помочь?? Это мой код, первый файл — это запрос, а второй файл — это код, в котором я пытаюсь получить данные.

файл запроса:

 import axios from "axios"

let axiosApiInstance = axios.create();

function setToken(token,RefreshToken) {
    
    axios.defaults.headers.common['x-access-token'] = token;

    axiosApiInstance.interceptors.response.use((response) => {
        return response
      }, async function (error) {
        const originalRequest = error.config;
        if (error.response.status === 401 amp;amp; !originalRequest._retry) {
          originalRequest._retry = true;           
          axios.defaults.headers.common['x-refresh-token'] = RefreshToken;
          return axiosApiInstance(originalRequest);
        }
        return Promise.reject(error);
      });
   
}

export default {
    get: axios.get,
    post: axios.post,
    delete: axios.delete,
    put: axios.put,
    setToken: setToken,
}
 

это код, который я использую для получения данных на экране

 useEffect(() => {
    getData();
    return () => {};
  }, []);

  const getData = async () => {
    request
      .get("http://18.156.84.96:5000/api/client/orders/get-orders/1/Active", {
        headers: {
          Authorization: `${token}`,
        },
      })
      .then((res) => {
        console.log(res.data);
      })
      .catch((error) => {
        console.error(error);
      });
  };
 

Комментарии:

1. токен недоступен в функции useEffect . Вы должны изменить setToken, чтобы установить заголовок авторизации по умолчанию или предоставить для ввода второй функции.

Ответ №1:

Измените функцию setToken, чтобы установить токен следующим образом:

 // Add a request interceptor
axios.interceptors.request.use(function (config) {
    config.headers.Authorization =  token;

    return config;
});
 

И удалите объекты headers из запроса get, поскольку токен здесь недоступен

Комментарии:

1. Как насчет токена обновления в функции setToken, потому что мне это тоже нужно