React router Switch behavior

后端 未结 1 1599
日久生厌
日久生厌 2020-12-13 08:44

(react-router-dom version: 4.1.1)

I have working routes set up, but I\'m a bit confused about why the was necessary:

相关标签:
1条回答
  • 2020-12-13 09:14

    <Switch> returns only one first matching route.

    exact returns any number of routes that match exactly.

    For example:

    <Switch>
      <Route exact path="/animals" component={Animals} />
      <Route path="/animals/fish" component={Fish} />
      <Route component={Missing} />
    </Switch>
    <Route path="/animals" component={Order} />
    

    If the Missing component was not inside a <Switch>, it would be returned on every single route.

    With exact, the "/animals" route will not catch every route containing "/animals" such as "animals/fish".

    Without exact, the "/animals/fish" route will also return the Fish component for "animals/fish/cod", "/animals/fish/salmon", etc.

    Being outside the <Switch> statement and without exact, the Order component is rendered on every path containing "/animals".


    Usually, if you're not using exact you would use a wildcard, so you don't return random pages.

    0 讨论(0)
提交回复
热议问题