React HashRouter 无法从主页重定向到辅助页面

React HashRouter can not redirect from main page to a sup-page

我想设置从主页“/”到某个默认子页面的重定向。我的示例代码如下:

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”位置。但事实并非如此。只能通过单击伪导航链接。我做错了什么?

你的问题是,你将 FakeAdminRedirect 包装在一个 Switch 中,因此当 FakeAdmin 被渲染时,Switch 停止渲染其子项中的任何其他内容.您不需要开关,而是使用 React.Fragment

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