如何将此类更改为 React Native 中的功能组件

时间:2020-12-20 18:03:58

标签: react-native axios react-hooks

你好,我在我的项目中使用了这个 axios 包装器,它按预期工作。但是我想在这个类中使用钩子,所以我必须把它改成一个功能组件。任何想法把它改成一个功能组件。谢谢...

import React from 'react';
import axios from 'axios';
import createAuthRefreshInterceptor from 'axios-auth-refresh';

const axiosApiInstance = axios.create({baseURL: "http://10.0.2.2:5001"});
const refreshAuthLogic = (failedRequest) => {
  const options = {
    method: 'post',
    url: 'http://10.0.2.2:5001/api/token/refresh',
    data: {
      email: 'rwar@gmail.com',
      refreshToken: 'testrefreshtoken'
    },
  };
  return axios(options, {
    pauseInstanceWhileRefreshing: true,
  }).then((tokenRefreshResponse) => {
    failedRequest.response.config.headers['Authorization'] =
      'Bearer ' + tokenRefreshResponse.data.result.token;
    return Promise.resolve();
  });
};
createAuthRefreshInterceptor(axiosApiInstance, refreshAuthLogic);
axiosApiInstance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if (error && error.response && error.response.status === 401) {
      // 401 error redirect to login
      return Promise.reject(error);
    }

    if (error.response.status !== 401) {
      return new Promise((resolve, reject) => {
        reject(error);
      });
    }
  },
);
export default axiosApiInstance;

0 个答案:

没有答案