You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-router-dom v6中withRouter导出不存在的报错原因咨询

react-router-dom v6 报错:找不到withRouter的解决方案

报错原因

你用的react-router-dom版本是v6.21.1,这个版本已经彻底移除了withRouter高阶组件——它是React Router v5及更早版本的API,v6里不再提供。所以你在TopScroll.js里尝试导入并使用withRouter,就会触发"找不到导出"的错误。

另外v6也废弃了旧的history对象,改用路由钩子来实现路由监听等功能。

修复方案

直接修改TopScroll.js,用v6内置的useLocation钩子替代原来的实现:

import React, { useEffect, Fragment } from 'react';
import { useLocation } from 'react-router-dom';

function TopScroll({ children }) {
  const location = useLocation();

  useEffect(() => {
    // 路由切换时滚动到页面顶部
    window.scrollTo(0, 0);
  }, [location.pathname]); // 监听路由路径变化

  return <Fragment>{children}</Fragment>;
}

export default TopScroll;

额外注意

你的App.js里还导入了Redirect,但v6里Redirect已经被Navigate组件取代,如果后续需要重定向功能,要改成import { Navigate } from 'react-router-dom';如果暂时用不到,直接删掉Redirect的导入即可。

内容的提问来源于stack exchange,提问作者Daksh Kashyap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:56:00