我已经有了这个发送来自Axios的请求的函数,

export const http = axios.create({
  baseURL: 'https://someurl/api',
  headers: {
    'Content-type': 'application/json',
    Accept: 'application/json',
  },
});

因此,我可以在应用程序中的任何位置调用此方法,

   import {http} from 'src/helpers/HttpHelper';

   http
      .post(
        '/users',
        {name: 'mishen'},
      )
      .then(res => console.log(res))
      .catch(error => console.log());

由于也有需要承载令牌的受保护的路由,我try 在我的组件中执行类似的操作,

import {useContext} from 'react';
import {http} from 'src/helpers/HttpHelper';

const MyComponent = () => {
  const {userToken} = useContext(AuthContext);
  const signUpUser = () => {
    http
  .post(
    '/app_user_role_selection',
    {name: 'mishen'},
    {headers: {Authorization: `Bearer ${userToken}`}}
  )
  .then(res => console.log(res))
  .catch(error => console.log());
 }
 ...
}

然而,这并不管用.

推荐答案

你可以用axios interceptors美元.

export const http = axios.create({
  baseURL: "url",
  headers: {
    "Content-type": "application/json",
    Accept: "application/json"
  }
});

http.interceptors.request.use(async (config) => {
  const value = await AsyncStorage.getItem("your key");
  if (value !== null) {
    config.headers["Authorization"] = `Bearer ${value}`;
  }

  return config;
});


const MyComponent = () => {
  const signUpUser = () => {
    http
      .post(
        "/app_user_role_selection",
        { name: "mishen" }
      )
      .then((res) => console.log(res))
      .catch((error) => console.log());
  };
};

Javascript相关问答推荐

使用print This时, map 容器已在LeafletJS中初始化

Plotly热图:在矩形上zoom 后将zoom 区域居中

康威的生活游戏规则在我的Javascript版本中不起作用.''我做错了什么?

如何从调整大小/zoom 的SVG路径定义新的d属性?""

JS,当你点击卡片下方的绿色空间,而它是在它的背后转动时,

如何使onPaste事件与可拖动的HTML元素一起工作?

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

为什么123[';toString';].long返回1?

如何在.NET Core中将chtml文件链接到Java脚本文件?

如何在 Select 文本时停止Click事件?

在画布中调整边上反弹框的大小失败

为什么我的按钮没有从&q;1更改为&q;X&q;?

未捕获语法错误:Hello World中的令牌无效或意外

为什么我看到的是回复,而不是我的文档?

在将元素追加到DOM之前,createElement()是否会触发回流?混淆abt DocumentFragment行为

需要RTK-在ReactJS中查询多个组件的Mutations 数据

Firebase函数中的FireStore WHERE子句无法执行

无法向甜甜圈图表上的ChartJSImage添加可见标签

如何在函数组件中保留对计时器的引用

单击时同时 Select 和展开可访问的行