React-Router <Switch>, кажется, не имеет никакого эффекта - PullRequest
0 голосов
/ 24 марта 2020
function App() {
  return (
    <>
      <CssBaseline />
      <Router>
        <Switch> 
          <Route path="/auth">
            <Auth></Auth>
          </Route>
          <Container>
            <Route path="/sign-in" component={SignIn} />
            <Route path="/home" component={Home} />
            <Route path="/load" component={Load} />
          </Container>
          <Route>
            <Redirect to="/sign-in"></Redirect>
          </Route>
        </Switch>
      </Router>
    </>
  );
}

<Container> является поставщиком контекста.

export const Container = ({ children }: { children: JSX.Element[] }) => {
    return <AuthContainer.Provider>
        <DataContainer.Provider>
            {children}
        </DataContainer.Provider>
    </AuthContainer.Provider>
}

, когда location находится в /, <Redirect> не имеет никакого эффекта. изменение <Route> на <Route path="/" exact> также не влияет на /. Пожалуйста, скажите мне причину, спасибо.

Я перемещаю <Container> в <Switch>, вещь go, чтобы быть правильной. Но почему?

1 Ответ

0 голосов
/ 24 марта 2020

Коммутатор будет искать точное совпадение, поэтому вам нужно определить путь для вашего маршрута, иначе он никогда не будет совпадать ни с одним из маршрутов.

<Route path="/">
   <Redirect to="/sign-in"></Redirect>
</Route>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...