Можно ли использовать MemoryRouter, вложенный в BrowserRouter в React?

#javascript #reactjs #react-router

#javascript #reactjs #react-маршрутизатор

Вопрос:

Я искал и пытался некоторое время, однако я не мог найти ответа, можно ли использовать MemoryRouter только для определенных маршрутов, в то время как я использую BrowserRouter в целом. Я хочу перейти к определенному компоненту, но не изменять URL, попробовал так, но он изменяет URL, но не отображает компонент, полная противоположность тому, что я желаю.

      <BrowserRouter>
          <Switch>
            <Route path="/login" component={Login} exact />
            <Route path="/" component={MainPage} />
            <MemoryRouter>
              <Route
                path='/somecomponent'
                component={SomeComponent}
              />
            </MemoryRouter>
          </Switch>
      </BrowserRouter>
  

Ответ №1:

Маршруты внутри MemoryRouter относятся к MemoryRouter, а не к вашему текущему местоположению, как показано в строке URL.

Что касается текущего маршрута "/" , и он будет отображать только компоненты <Route path="/"> . Если бы вы добавили

 <Route path="/">
    <Redirect to="/somecomponent" />
</Route>
  

непосредственно под MemoryRouter ним следует перейти к пути, который вы ищете, и отобразить, как задумано.