ホームページ > ウェブフロントエンド > jsチュートリアル > React Router v6 で「エラー: [PrivateRoute] はコンポーネントではありません。すべてのコンポーネントの子は または \ である必要があります」を修正する方法?

React Router v6 で「エラー: [PrivateRoute] はコンポーネントではありません。すべてのコンポーネントの子は または \ である必要があります」を修正する方法?

DDD
リリース: 2024-10-28 20:02:30
オリジナル
224 人が閲覧しました

How to Fix

エラー: [PrivateRoute] は ではありません。成分。 のすべてのコンポーネントの子。 である必要があります。または

React Router v6 では、プライベート ルート コンポーネントが有効な Route コンポーネントではないことを示すエラーが発生する場合があります。この問題は、プライベート ルート コンポーネントが適切に定義または構成されていない場合に発生します。

この問題を解決するには、次の手順に従います。

PrivateRoute コンポーネント

PrivateRoute コンポーネントが有効な React Route コンポーネント。この例では、PrivateRoute コンポーネントに構文エラーがあります。

const ele = authed === true ? element : <Navigate to=&quot;/Home&quot;  />;
ログイン後にコピー

後の / を ="/Home" に置き換える必要があります。二重右山括弧:

const ele = authed === true ? element : <Navigate to=&quot;/Home&quot; ></Navigate>;
ログイン後にコピー

ルート構成

ルート構成で、プライベート ルートが適切に定義されていることを確認してください。あなたの例では、

<PrivateRoute exact path=&quot;/&quot; element={<Dashboard/>}/>
ログイン後にコピー

要素の小道具に閉じ山括弧が欠落しているため、これは機能しません。正しいコードは次のとおりです:

<PrivateRoute exact path=&quot;/&quot; element={<Dashboard />} />
ログイン後にコピー

または、条件付きレンダリング アプローチなど、別の方法を使用してプライベート ルートを設定することもできます。

<Route exact path='/' element={<PrivateRoute/>}>
  <Route exact path='/' element={<Dashboard/>}/>
</Route>
ログイン後にコピー

この例では、 PrivateRoute コンポーネントは、認証ステータスに基づいてダッシュボード コンポーネントをレンダリングするかどうかを決定します。

結論

PrivateRoute コンポーネントが適切に定義され、ルート構成が正しいことを確認することで、問題を解決できます。エラー エラー: [PrivateRoute] は ではありません。成分。 のすべてのコンポーネントの子。 である必要があります。または

以上がReact Router v6 で「エラー: [PrivateRoute] はコンポーネントではありません。すべてのコンポーネントの子は または \ である必要があります」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート