Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Membetulkan Ralat \'[PrivateRoute] bukan komponen\' dalam React Router v6?

Bagaimana untuk Membetulkan Ralat \'[PrivateRoute] bukan komponen\' dalam React Router v6?

DDD
DDDasal
2024-11-01 03:16:27727semak imbas

How to Fix

Ralat: [PrivateRoute] bukan komponen

Ralat ini berlaku apabila menggunakan React Router v6 dan cuba mencipta laluan peribadi. Kod yang diberikan dalam PrivateRoute.js cuba mengembalikan komponen Route, tetapi ia tidak dieksport seperti itu.

Penyelesaian:

Untuk menyelesaikan isu ini, ubah suai PrivateRoute Fail .js seperti berikut:

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;

Dalam fail App.js, pastikan laluan peribadi ditakrifkan seperti berikut:

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

Kod yang disemak ini akan memastikan komponen PrivateRoute diiktiraf sebagai komponen Laluan dan akan berfungsi dengan betul untuk penghalaan peribadi.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'[PrivateRoute] bukan komponen\' dalam React Router v6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn