React HashRouter не может перенаправить с главной страницы на страницу поддержки - PullRequest
0 голосов
/ 06 июня 2019

Я хотел бы настроить перенаправление с главной страницы "/" на какую-то подстраницу по умолчанию.Мой пример кода выглядит следующим образом:

function FakeAdmin() {
  return(
    <div>
      Admin<br/>
      <a href="#/dashboard">Dashboard</a><br/>
      <a href="#/anything-else">Anything else</a><br/>

      <Switch>
        <Route path="/dashboard">
          <p>DASHBOARD</p>
        </Route>
        <Route path="/anything-else">
          <p>ANYTHING ELSE</p>
        </Route>
      </Switch>
    </div>
  )
}

ReactDOM.render(
  <HashRouter>
    <Switch>
      <FakeAdmin/>
      <Redirect from="/" to="/dashboard" />
    </Switch>
  </HashRouter>,
  document.getElementById("root")
)

Я ожидаю, что при посещении этой страницы "/" она должна автоматически перенаправиться в местоположение "/ # / dashboard".Но это не так.Только нажав на псевдо-навигационные ссылки.Что я делаю не так?

1 Ответ

1 голос
/ 06 июня 2019

Проблема в вашем случае заключается в том, что вы оборачиваете FakeAdmin и Redirect внутри коммутатора, поэтому, когда визуализируется FakeAdmin, коммутатор прекращает рендеринг всего, что следует за его дочерними элементами. Вам не нужен переключатель, вместо этого используйте React.Fragment

ReactDOM.render(
  <HashRouter>
    <React.Fragment>
      <FakeAdmin/>
      <Redirect from="/" to="/dashboard" />
    </React.Fragment>
  </HashRouter>,
  document.getElementById("root")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...