如何防止React Router 404在所有页面上显示?

时间:2020-08-25 22:20:53

标签: reactjs react-router

<Router>
    <Header />

    <Route exact={true} path="/">
      <Form />
    </Route>

    <Switch>
      <Route path="/login">
        <LoginTable />
      </Route>
      <Route path="/feedback">
        <Feedback />
      </Route>
      <Route path="*">
        <Four04 />
      </Route>
    </Switch>
  </Router>

<Four04>组件始终显示在每个页面的底部。

我的理解是,<Switch>会采用第一个可用路线,而不是最终到达“ 404”区域。

我尝试将'404'移出Switch

我还尝试将exact={true}添加到其他组件中! ?

2 个答案:

答案 0 :(得分:0)

我总是将其设置为:

import { BrowserRouter as Router, Route, Switch } 
from "react-router-dom";
<Router>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route exact path="/other" component={Other} />
      <Route component={NoMatch} /> 
   </Switch> 
</Router>

如果没有路由匹配,那么它将命中NoMatch组件

答案 1 :(得分:0)

因此,实际上,问题是顶部的Route不在Switch中-NS Y我最初是这样做的。 ?