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

index.js中Router未定义报错:已安装react-router仍出现该问题

解决React中"Router is not defined"报错的方案

嘿,我来帮你搞定这个Router未定义的问题!咱们一步步来分析和解决:

问题根源

你遇到的报错主要有两个原因:

  1. 在index.js中使用了<Router>组件,但没有从对应的库中导入它
  2. 你安装的react-router是核心路由库,而实际在浏览器环境中使用的路由组件(比如BrowserRouter)是在react-router-dom包中的,这个包依赖于react-router,所以需要确保它也被安装。

具体解决步骤

1. 确保安装了react-router-dom

如果只安装了react-router,请在项目根目录执行以下命令安装react-router-dom:

npm install react-router-dom

2. 修改index.js的导入和组件使用

在index.js中,你需要从react-router-dom导入BrowserRouter(它是适合浏览器环境的Router实现),可以将它重命名为Router以便保持你原来的代码结构:

修改后的index.js代码:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import App from './App'; 
import registerServiceWorker from './registerServiceWorker';
// 新增这行:导入BrowserRouter并命名为Router
import { BrowserRouter as Router } from 'react-router-dom';

ReactDOM.render( 
  <Router> 
    <App /> 
  </Router>, 
  document.getElementById('root')
); 
registerServiceWorker(); 

3. 确认App.js的代码正确性

你的App.js代码已经正确导入了Route和Switch,这部分没问题,不过可以稍微整理下格式让它更清晰:

import React, { Component } from 'react'; 
import Default from "./components/Default.js";
import { Route, Switch } from 'react-router-dom';

class App extends Component { 
  render() { 
    return ( 
      <Switch> 
        <Route path='/' component={Default}/> 
      </Switch> 
    ); 
  } 
} 

export default App;

这样修改后,重新启动项目,"Router is not defined"的报错应该就消失啦!

内容的提问来源于stack exchange,提问作者J.Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:32:33