反应路由器 404 页面

ask*_*ale 1 reactjs react-router

我目前遇到一些关于反应路由器显示 404 未找到页面的问题。这是我到目前为止的代码:

 <Route path="/home" component={Home} exact={true}/>
 <Route path="/admin/forgot-password" component={AdminResetPassword} exact={true}/>
 <Authentication path="/admin/welcome" component={AdminWelcome} exact={true}/>
 <Authentication path="/admin/dashboard" component={AdminDashboard} exact={true}/>
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试做这样的事情:

<Route path="/home" component={Home} exact={true}/>
<Route path="/admin/forgot-password" component={AdminResetPassword} exact={true}/>
<Route path="*" component={Page404}/>
<Authentication path="/admin/welcome" component={AdminWelcome} exact={true}/>
<Authentication path="/admin/dashboard" component={AdminDashboard} exact={true}/>
Run Code Online (Sandbox Code Playgroud)

事实是,它有效 - 但仅适用于未包含在身份验证中的页面。换句话说,如果我尝试导航到管理页面,它只会说找不到 404 页面。我将如何解决这个问题?

帮助将不胜感激。

Col*_*rdo 5

您可以使用<Switch />:

<Switch>
    <Route path="/home" component={Home} exact={true}/>
    <Route path="/admin/forgot-password" component={AdminResetPassword} exact={true}/>
    <Authentication path="/admin/welcome" component={AdminWelcome} exact={true}/>
    <Authentication path="/admin/dashboard" component={AdminDashboard} exact={true}/>
    <Route component={Page404}/>
</Switch>
Run Code Online (Sandbox Code Playgroud)

如果最后一条之前的路径都不匹配,Page404则将显示 。