1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【React】ルーティング設定が正しいのにコンポーネントが表示されない

Posted at

状況

上記の教材での学習中、画面遷移のためにReact Router v6を使用してルーティング設定を行ったところ、/usersにてHeaderOnlyを含む全てのコンポーネントが表示されない状態になった。

Router.jsx
import { BrowserRouter, Routes, Route } from "react-router-dom";
import { Top } from "../components/pages/Top";
import { Users } from "../components/pages/Users";
import { DefaultLayout } from "../components/templates/DefaultLayout";
import HeaderOnly from "../components/templates/HeaderOnly";

export const Router = () => {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<DefaultLayout />}>
          <Route index element={<Top />} />
        </Route>
        <Route path="/users" element={<HeaderOnly />}>
          <Route index element={<Users />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
};

原因・解決

既に気付いている人はいると思いますが、HeaderOnlyコンポーネントをnamed exportしていたのに括弧を忘れていました。

Router.jsx
import { BrowserRouter, Routes, Route } from "react-router-dom";
import { Top } from "../components/pages/Top";
import { Users } from "../components/pages/Users";
import { DefaultLayout } from "../components/templates/DefaultLayout";
- import HeaderOnly from "../components/templates/HeaderOnly";
+ import { HeaderOnly } from "../components/templates/HeaderOnly";


export const Router = () => {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<DefaultLayout />}>
          <Route index element={<Top />} />
        </Route>
        <Route path="/users" element={<HeaderOnly />}>
          <Route index element={<Users />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
};

このとき、なぜかCodeSandBoxの自動インポートが効かなくなっており、インポート文を手入力したのが徒となりました。

ちゃんとエラーも出ていたのですが、括弧なしでも大丈夫だと勘違いしており、スルーしてしまいました。
そのとき表示されていたエラーメッセージ(再現)

教訓

  • (特に初学者のうちは)エラーメッセージが出たら素直な気持ちかつダメ元で対処すべし
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?