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;
相关推荐
over697几秒前
从 URL 输入到页面展示:一次完整的 Web 导航之旅
前端·面试·架构
Giant1001 分钟前
TypeScript 核心知识点(覆盖 90% 开发场景)
前端
暴走的小呆3 分钟前
为什么react要从顶层更新
前端
仰望星空的小猴子15 分钟前
React18和React19新特性
前端
小码哥_常16 分钟前
Android新航标:Navigation 3为何成为变革先锋?
前端
SuperEugene17 分钟前
Vue状态管理扫盲篇:状态管理中的常见坑 | 循环依赖、状态污染与调试技巧
前端·vue.js·面试
骑着小黑马18 分钟前
从 Electron 到 Tauri 2:我用 3.5MB 做了个音乐播放器
前端·vue.js·typescript
aykon18 分钟前
DataSource详解以及优势
前端
Mintopia18 分钟前
戴了 30 天智能手环后,我才发现自己一直低估了“睡眠”
前端
leolee1819 分钟前
react redux 简单使用
前端·react.js·redux