Heim  >  Artikel  >  Web-Frontend  >  Wie behebt man den Fehler „[PrivateRoute] ist keine Komponente“ in React Router v6?

Wie behebt man den Fehler „[PrivateRoute] ist keine Komponente“ in React Router v6?

DDD
DDDOriginal
2024-11-01 03:16:27631Durchsuche

How to Fix

Fehler: [PrivateRoute] ist keine Komponente

Dieser Fehler tritt auf, wenn React Router v6 verwendet wird und versucht wird, private Routen zu erstellen. Der angegebene Code in PrivateRoute.js versucht, eine Routenkomponente zurückzugeben, wird jedoch nicht als solche exportiert.

Lösung:

Um dieses Problem zu beheben, ändern Sie die PrivateRoute .js-Datei wie folgt:

import React from 'react';
import { Navigate, Outlet } from 'react-router-dom';

const PrivateRoute = () => {
    const auth = null; // determine if authorized, from context or however you're doing it

    // If authorized, return an outlet that will render child elements
    // If not, return element that will navigate to login page
    return auth ? <Outlet /> : <Navigate to="/login" />;
}

export default PrivateRoute;

Stellen Sie in der App.js-Datei sicher, dass die private Route wie folgt definiert ist:

<Route exact path='/' element={<PrivateRoute />}>
  <Route exact path='/' element={<Home />} />
</Route>

Dieser überarbeitete Code stellt sicher, dass die PrivateRoute-Komponente wird als Routenkomponente erkannt und funktioniert ordnungsgemäß für privates Routing.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „[PrivateRoute] ist keine Komponente“ in React Router v6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn