React 路由的一个小问题,希望大拿可以看看,并且解答

#1
<Router>
    <div>
      <Navbar />
      <Route exact path="/" component={Deskmark} />
      <Route exact path="/demo" component={Page} />
      <Redirect from="*" to="/" />
    </div>
  </Router>

这个是很简单的路由代码
但是有个不知道怎么写的小问题
Redirect是用来做一个全局转发 如果没有指定的路由则跳转到首页
但是现在我直接访问 /demo 还是先跳转到首页才能再进入demo
Why?

1 Like
#2

得在外面套一个 Switch 组件,不然 Redirect 永远都会匹配

<Router>
    <div>
        <Navbar />
        <Switch>
            <Route exact path="/" component={Deskmark} />
            <Route exact path="/demo" component={Page} />
            <Redirect from="*" to="/" />
        </Switch>
    </div>
</Router>
#3

不太懂,Switch不是开关的组件吗?

#4

#react-router

##Switch

Renders the first child <Route> or <Redirect> that matches the location.

Switch会匹配第一个