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

如何修复React Router中Link组件的Uncaught TypeError错误?

修复React Router Link组件的"Cannot destructure property 'basename' of 'React2.useContext(...)' as it is null"错误

错误原因

这个错误的核心是:react-router-dom的Link组件必须在路由上下文提供者(比如BrowserRouter/HashRouter)的包裹下才能正常工作。如果组件没有被这些提供者包裹,Link内部调用useContext获取路由上下文时会返回null,解构basename属性自然就会抛出类型错误。

修复步骤

  • 步骤1:定位应用入口文件
    通常是项目根目录下的main.jsx/main.tsx,或者路由逻辑所在的App.jsx文件。

  • 步骤2:导入并使用路由提供者
    从react-router-dom导入BrowserRouter(最常用的路由模式),然后用它包裹整个应用组件,或者至少包裹包含Navbar的部分。

    示例修改后的入口文件代码:

    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import { BrowserRouter } from 'react-router-dom';
    import App from './App';
    
    ReactDOM.createRoot(document.getElementById('root')).render(
      <React.StrictMode>
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </React.StrictMode>
    );
    
  • 步骤3:确认Navbar在路由上下文范围内
    确保你的Navbar组件是在BrowserRouter包裹的组件树内部被使用的(比如在App组件中引入Navbar),这样Link就能正常获取到路由上下文。

额外检查

如果还未安装react-router-dom,先执行安装命令:

npm install react-router-dom
# 或者
yarn add react-router-dom

内容的提问来源于stack exchange,提问作者Subham Negi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:22:17