1. ホーム
  2. javascript

[解決済み] React RouterでDefaultRouteを別のRouteに設定する方法

2022-03-09 02:45:42

質問

次のようなものがあります。

  <Route name="app" path="/" handler={App}>
    <Route name="dashboards" path="dashboards" handler={Dashboard}>
      <Route name="exploreDashboard" path="exploreDashboard" handler={ExploreDashboard} />
      <Route name="searchDashboard" path="searchDashboard" handler={SearchDashboard} />
      <DefaultRoute handler={DashboardExplain} />
    </Route>
    <DefaultRoute handler={SearchDashboard} />
  </Route>

DefaultRouteを使用する場合、*DashboardはDashboard内でレンダリングする必要があるため、SearchDashboardのレンダリングが正しく行われない。

app" ルート内の DefaultRoute がルート "searchDashboard" を指すようにしたいのですが、可能でしょうか?これはReact Routerでできることですか、それとも通常のJavascript(ページのリダイレクト用)を使用すべきですか?

基本的に、ユーザーがホームページにアクセスした場合、代わりに検索ダッシュボードに送りたいのです。つまり、次のようなReact Routerの機能を探しているのだと思います。 window.location.replace("mygreathostname.com/#/dashboards/searchDashboard");

どのように解決するのですか?

DefaultRouteの代わりにRedirectを使用することができます。

<Redirect from="/" to="searchDashboard" />

更新 2019-08-09 更新時の問題を回避するために、代わりにこれを使用します、Ogglasに感謝します。

<Redirect exact from="/" to="searchDashboard" />