React Router Dom v6 未匹配路由使用Navigate跳转首页不生效问题
配置不生效的核心原因
- React Router v6 规定所有
<Route>组件需要渲染的内容必须通过element属性传入,不能直接作为<Route>的子元素放置。你当前的写法将<Navigate>作为path="*"路由的子元素,不符合v6的语法规范,因此组件不会被渲染,跳转逻辑自然不会触发。
修正后的配置示例
<Routes> <Route path="/" element={<Home />} /> <Route path="/information" element={<Information />} /> <Route path="*" element={<Navigate to="/" replace={true} />} /> </Routes>
额外校验点
- 确保你已经从
react-router-dom包中正确导入了Navigate组件,未导入会导致组件渲染失败。 - 若你使用的是 HashRouter 模式,无需额外调整服务端配置;若使用 BrowserRouter 模式,需要配置服务端将所有路由请求重定向到 index.html,避免直接访问非首页路由时出现404问题。
内容的提问来源于stack exchange,提问作者Marek
相关产品推荐
相关产品推荐

