React-Router v6 useNavigate 非组件不生效

1. 官方文档&中文文档

React Router 官方文档

React Router 中文文档

2. 相关技术文档

升react-router v6后react-router-config不能用了

如何通过react-router-dom优雅的实现菜单权限和登陆拦截功能

如何优雅的使用react-router v6实现全局守卫

3. FAQ

3.1 react-router-dom useNavigate 在非组件不生效

How to use router inside axios interceptors. React and Vue

ts 复制代码
// src/router/globalRouter.ts
import { NavigateFunction } from "react-router-dom";

const globalRouter = { navigate: null } as {
  navigate: null | NavigateFunction;
};

export default globalRouter;
ts 复制代码
// src/main.tsx
import { Route, Routes, useNavigate } from "react-router-dom";
import globalRouter from "./globalRouter";

function App() {
  const navigate = useNavigate();
  globalRouter.navigate = navigate;
}

export default App;
ts 复制代码
// src/utils/request.ts
import globalRouter from "@/utils/globalRouter";
import axios from "axios";

const customAxios = axios.create();

customAxios.interceptors.response.use(
  function (response) {
    return response;
  },
  function (error) {
    if (error.response.status == 401 && globalRouter.navigate) {
      globalRouter.navigate("/login");
    }
    return Promise.reject(error);
  }
);

export default customAxios;
相关推荐
怕浪猫1 分钟前
Electron 开发实战(七):网络通信与 API 集成全解
前端·javascript·electron
凌览4 分钟前
为什么我不推荐一人公司用PostgreSQL
前端·后端·node.js
王琦03188 分钟前
shell 第二章 变量和引用
前端·chrome
暗中讨饭xdm9 分钟前
立体echarts柱状图咋做
前端·vue.js·echarts
wuhen_n17 分钟前
阿里云百炼平台 API 接入教程(附 Node.js + TypeScript 实战)
前端·人工智能·阿里云·ai编程
码语智行17 分钟前
操作日志注解模块
java·前端·python
CDN36018 分钟前
【前端实战】LCP指标从2.5s优化至0.8s!用360CDN的WebP自适应与缓存策略榨干性能
前端·缓存
星辰_mya20 分钟前
ThreadLocal之微服务链路追踪
java·开发语言·前端
会编程的土豆24 分钟前
前端和后端是怎么配合工作的(Go后端视角)
前端·golang·状态模式