首页 > 解决方案 > react native如何把这个类改成函数式组件

问题描述

您好,我在我的项目中使用了这个 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;

标签: react-nativeaxiosreact-hooks

解决方案


推荐阅读