【发布时间】:2021-02-13 04:15:41
【问题描述】:
我是 reactJS 的初学者。我在 App.js 中定义了以下路由
<Router>
<Switch>
<Route exact path='/' component={Login} />
<Route path='/dashboard' component={Dashboard} />
<Route path="*" component={NotFound} ></Route>
</Switch>
</Router>
NotFound 组件应针对任何无效路由显示。它适用于所有看起来像这样的无效路线
- localhost:3000/something_invalid
- localhost:3000/something_invalid_1
但是如果我在 URL 中再添加一个步骤。 NotFound 组件没有被渲染。例如,
- localhost:3000/something_invalid/something_invalid
- localhost:3000/something_invalid_1/something_invalid_1
我做错了什么?
【问题讨论】:
-
您是在导入
Router还是BrowserRouter as Router? -
import { BrowserRouter as Router, Switch, Route, Redirect } from 'react-router-dom'; -
在这种情况下,您的代码完全有效并且应该可以工作。一定是其他原因导致了这种情况。您还定义了其他路线吗?
-
当您转到:
/something_invalid/something_invalid时究竟会发生什么?控制台中有任何内容? -
您的代码与此有何不同:codesandbox.io/s/heuristic-tdd-xrmo3?file=/src/App.js 您可以尝试任何路径,未找到元素会毫无问题地呈现。
标签: javascript reactjs react-router