axios拦截器无法访问React上下文
创始人
2024-09-28 21:01:12
0

可以使用高阶组件将 React 上下文传递到 axios 拦截器中。具体实现如下:

  1. 创建一个 React 上下文
import React from 'react';

export const MyContext = React.createContext({});
  1. 创建一个高阶组件,将 React 上下文传递到 axios 拦截器中
import axios from 'axios';
import React from 'react';
import {MyContext} from './MyContext';

export const withAxiosInterceptor = (WrappedComponent) => {
  return class extends React.Component {
    componentDidMount() {
      axios.interceptors.request.use((config) => {
        const {myData} = this.context;
        config.headers.common.Authorization = `Bearer ${myData.token}`;
        return config;
      });
    }

    componentWillUnmount() {
      axios.interceptors.request.eject(this.interceptor);
    }

    render() {
      return (
        
          {(context) => (
            
          )}
        
      );
    }
  };
};
  1. 在组件中使用高阶组件
import React from 'react';
import {MyContext} from './MyContext';
import {withAxiosInterceptor} from './withAxiosInterceptor';

class MyComponent extends React.Component {
  static contextType = MyContext;

  render() {
    const {myData} = this.context;
    return 
{myData.username}
; } } export default withAxiosInterceptor(MyComponent);

相关内容

热门资讯

透视了解"来物局潮汕... 透视了解"来物局潮汕麻雀"开挂(透视)辅助下载(原来确实是有挂)-哔哩哔哩;致您一封信;亲爱来物局潮...
第十分钟带你得知!八闽状元郎辅... 第十分钟带你得知!八闽状元郎辅助器怎么用(辅助挂)一直确实有挂(存在有挂)-哔哩哔哩;AI辅助机器人...
推荐一款"微信h5辅... 推荐一款"微信h5辅助器"开挂(透视)辅助神器(原来确实有挂)-哔哩哔哩;微信h5辅助器AI智能教程...
透视神器"微信十三张... 透视神器"微信十三张脚本"开挂(透视)辅助工具(其实确实是有挂)-哔哩哔哩;致您一封信;亲爱微信十三...
七分钟带你得知!邯郸胡乐挂(辅... 七分钟带你得知!邯郸胡乐挂(辅助挂)其实有挂(真实有挂)-哔哩哔哩;邯郸胡乐挂软件透视开挂作为一款邯...
总算清楚"战神辅助发... 总算清楚"战神辅助发卡官网"开挂(透视)辅助脚本(原来是有挂)-哔哩哔哩;1、这是跨平台的战神辅助发...
第六分钟带你发现!哈局13张辅... 第六分钟带你发现!哈局13张辅助器(辅助挂)一贯真的有挂(新版有挂)-哔哩哔哩;哈局13张辅助器是一...
透视攻略"开心泉州小... 《透视攻略"开心泉州小程序福州"开挂(透视)辅助工具(一贯确实是有挂的)-哔哩哔哩》 开心泉州小程序...
第四分钟带你透视!威信茶馆有挂... 第四分钟带你透视!威信茶馆有挂的吗(辅助挂)一贯真的有挂(竟然有挂)-哔哩哔哩;1.威信茶馆有挂的吗...
分享一款"中至九江麻... 分享一款"中至九江麻将辅助器"开挂(透视)辅助神器(其实是有挂的)-哔哩哔哩;中至九江麻将辅助器软件...