はじめに
Routeをほかのコンポーネントで挟むとエラーになった。
問題
<Routes>
<DefaultLayout>
<Route path="/" element={<Top />} />
</DefaultLayout>
</Routes>
RouteはRoutes以外で挟むとエラーが発生する。
解決方法
古いReactバージョン(Ver5)では、Switchのコードで解決した
<Switch>
<DefaultLayout>
<Route exact path="/">
<Top />
</Route>
</DefaultLayout>
</Switch>
今回はバージョン(Ver6)が違うため、
<Route path="/" element={<DefaultLayout />} />
とした。
DefaultLayoutのコンポーネント内でTopコンポーネントを呼び出す方法にした。
結果、想定通りの挙動となった。
おわりに
どのバージョンを使用しているかを確認しよう。
コンポーネントの関係も把握する。