React项目报Parsing error: Identifier 'Router' has already been declared如何解决
问题原因
你在同一个作用域下重复声明了Router标识符:
- 从
react-router-dom依赖中导入了名为Router的内置组件 - 自定义的路由组件类也命名为
Router
解决方案
方案1(推荐)
你当前代码中实际只用到了BrowserRouter,完全没有使用导入的Router组件,直接修改导入语句删除冗余的Router即可:
// 修改前 import { BrowserRouter, Router, Switch } from 'react-router-dom'; // 修改后 import { BrowserRouter, Switch, Route } from 'react-router-dom';
注意:你还遗漏了
Route组件的导入,上面的代码也同步补上了,否则后续运行还会报Route未定义的错误。
方案2
如果后续业务确实需要用到react-router-dom的内置Router组件,就把你自定义的组件重命名避免冲突,比如改名为AppRouter:
// 类声明修改 class AppRouter extends React.Component { // 原有逻辑不变 } // 导出修改 export default AppRouter;
内容的提问来源于stack exchange,提问作者adisa adeolu
相关产品推荐
相关产品推荐

