react-router-dom路由创建报错:component未定义,请求协助解决
问题解决:react-router-dom 提示“component is not define”
你的错误根源在于react-router-dom v6的Route组件语法使用错误,结合你的代码,修正方案如下:
错误点分析
- Route的element属性写法错误:v6版本中,Route不再支持
component属性,而是用element接收JSX元素,你写成element={component={Home}}完全不符合语法,这也是导致“component is not define”的直接原因。 - Router组件使用不当:你导入的
Router是底层抽象组件,web项目中应该使用BrowserRouter来适配浏览器环境。 - exact属性冗余:v6的
Routes组件会自动进行精确路径匹配,不需要手动添加exact。
修正后的完整代码
导入部分
import Home from './components/Home'; import { Routes, Route, BrowserRouter as Router} from "react-router-dom"; import Products from './components/Products';
路由渲染部分
<Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/products" element={<Products />} /> </Routes> </Router>
关键修正说明
- 将
element={component={Home}}改为element={<Home />}:直接传入组件的JSX实例,这是v6规定的写法。 - 替换
Router为BrowserRouter as Router:确保路由能正常适配浏览器的历史记录API。 - 移除所有
exact属性:v6的路由匹配逻辑已经默认处理精确匹配,无需额外配置。
内容的提问来源于stack exchange,提问作者Bhavya khatri
相关产品推荐
相关产品推荐

