React 访问 axios 拦截器中的 redux 存储

2023-11-22

I want to access redux store in axios's interceptor which configures jwt token, so I import the store into the API.js file. But it immediately logged out some errors.enter image description here

这是 axios 实例

import axios from "axios";
import { store } from '../redux/store';

export const SERVERURL = "some url";

axios.defaults.withCredentials = true;
const API = axios.create({ baseURL: "some url" });

API.interceptors.request.use(req => {
  // something I want to do
  return req;
});

export default API;

这是 store.js

import { configureStore } from "@reduxjs/toolkit";
import userReducer from "./user";

export const store =  configureStore({ reducer: { user: userReducer } });

还有index.js

import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
import "./index.css";
import App from "./App";
import {store} from "./redux/store";
import { Provider } from "react-redux";

ReactDOM.render(
  <Provider store={store}>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </Provider>,
  document.getElementById("root")
);

我想知道会出现什么问题?


这是一个循环导入依赖问题,是由于尝试直接导入store文件到代码库的其他部分。你需要避免这样做。

根据我们的文档,一个推荐的选项是添加一个小的injectStore()将函数添加到 Axios 拦截器文件中,并将存储注入到拦截器中作为应用程序设置的一部分index.js:

https://redux.js.org/faq/code-struct#how-can-i-use-the-redux-store-in-non-component-files

// common/api.js

let store

export const injectStore = _store => {
  store = _store
}

axiosInstance.interceptors.request.use(config => {
  config.headers.authorization = store.getState().auth.token
  return config
})
// index.js

import store from './app/store'
import { injectStore } from './common/api'
injectStore(store)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 访问 axios 拦截器中的 redux 存储 的相关文章

随机推荐

  • 如何对相同的数组值进行分组

    例如我的数组 options array array brand gt Puma code gt p01 name gt Puma One array brand gt Puma code gt p02 name gt Puma Two a
  • 如何配置 git bash 命令行补全?

    例如 在一台新的 ubuntu 机器上 我刚刚运行sudo apt get git 并且输入时没有完成 例如git check tab 我没有找到任何东西http git scm com docs 但 IIRC 完成现在已包含在 git 包
  • 数据库设计-布尔属性或新表

    假设我有一个数据库表 我想根据布尔属性 例如 标记 属性 进行过滤 是只向表添加 标记 属性更好 还是创建一个具有基表外键的新表 优缺点都有什么 If that is all you need1 then just add the simp
  • 如何使用 jQuery 的 form.serialize 但排除空字段

    我有一个搜索表单 其中包含许多文本输入和通过 GET 提交的下拉菜单 我希望通过在执行搜索时从查询字符串中删除空字段来获得更清晰的搜索网址 var form form var serializedFormStr form serialize
  • Rails - 使用部分或特定控制器视图时覆盖 页面元素

    有没有办法附加或覆盖Rails 视图中的页面元素 假设我有一些东西只想包含在特定视图中 我正在使用application html erb以表达我的其余观点 在这种情况下我不想丢弃application html erb但只是附加到一个特定
  • 在 C# 应用程序中存储数据的最佳方式是什么[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想制作 Cookbook 应用程序来存储和阅读 和更新 菜谱 或者其他任何东西来练习 OOP 编程和思维 但是 我不确定在 C Visual Studio Express 中哪种存储数据
  • 亚马逊 MWS API 中的请求限制问题

    我正在测试 API 示例使用 C 编写的 Amazon MWS API 用于提交 Feed但是在代码中设置 AWS Secret key access key 等之后 我收到了 RequestThrottled 错误 因此详细说明了这是什么
  • Java中将字节转换为长度为4的布尔数组

    我需要在 Java 中将一个字节转换为 4 个布尔值的数组 我该怎么办 根据 Michael Petrotta 对您问题的评论 您需要决定应该针对生成的布尔数组测试 8 位字节中的哪些位 出于演示目的 我们假设您想要最右边的四个位 那么类似
  • 将鼠标悬停在 nightwatchjs 中的链接上

    我一直在使用nightwatch js并且总是在元素周围点击 有没有办法让我们将鼠标悬停在链接或按钮上 Try the browser moveToElement命令 您还可以在之后触发回调moveToElement完成 browser w
  • 保护ajax请求完整性的最佳方法

    我正在构建一个 Drupal 网站 其中包含大量用户特定信息 这些信息将使用 jQuery ajax 发布 它本身的信息不是很敏感 重要的是验证表单数据没有被 Firebug 等工具篡改 并确保该信息确实是从指定用户请求的 换句话说 我试图
  • while($row = mysql_fetch_assoc($result)) - 如何 foreach $row?

    我正在开发一个简单的订单系统 我所坚持的代码如下 if isset GET cart cart array total 0 foreach SESSION cart as id foreach items as product if pro
  • 我使用 gRPC 生成 java 代码“@javax.annotation.Generate”,它报告“错误:(20,18) java: 找不到符号”。怎么解决?

    我使用 gRPC 生成代码 javax annotation Generate 如下图所示 然后我使用maven构建项目 它报告 Error 20 18 java cannot find symbol 如下图所示 怎么解决 你可以加java
  • 创建聊天布局?

    我尝试在 xml 中创建一个 android 聊天布局 但我无法得到我想要的东西 这是我能得到的最接近的
  • 使用 O/R 映射时从哪里开始设计?对象还是数据库表?

    我正在启动一个新的数据库应用程序 我想知道是否最好从对象开始设计 使用 UML 并相应地构建数据库模式 或者从设计数据库 使用 ER 开始并创建对象是否会更好因此 这两种方法的优点和缺点是什么 我认为这并不重要 但以防万一 我计划使用 Ja
  • “删除不必要的使用”在 Visual Studio 2015 中不起作用

    我有几个项目的解决方案 Remove unnecessary usings正在参与除一个项目之外的所有项目 为什么Remove unnecessary usings命令not在一些项目中工作 Edit 正如你所看到的Before图像没有Re
  • CompletableFuture 链结果

    我试图将方法的调用 结果链接到下一个调用 我收到编译时错误 methodE 因为如果无法从上一次调用中获取 objB 的引用 如何将上一个调用的结果传递到下一个链 我完全误解了这个过程吗 Object objC CompletableFut
  • 抽象类与所有方法抽象和接口之间的区别?

    我有一次面试 面试官首先问我具有所有抽象方法的抽象类和接口之间有什么区别 我回答说 如果以后需要继承一些东西 如果你已经扩展了一个类 你就无法继承 然后 他说这是一种情况 永远不需要延长任何其他课程 你必须执行合同 在这种情况下 抽象类和接
  • 为什么欧洲/柏林时区的偏移量为 0:53?

    示例代码 from datetime import datetime timezone import pytz tzstring Europe Berlin t1 datetime 2016 6 16 2 0 tzinfo pytz tim
  • 找到最接近某个值的公约数的有效算法?

    我有两个号码 x1 and x2 对于一个号码y 我想计算的公约数x1 and x2尽可能接近y 有一个有效的算法吗 我相信是时候重新表述我的问题并且更加清楚了 这与整数无关 所以 假设我们有两个数字x1 and x2 比如说 用户输入一个
  • React 访问 axios 拦截器中的 redux 存储

    I want to access redux store in axios s interceptor which configures jwt token so I import the store into the API js fil