cari

Rumah  >  Soal Jawab  >  teks badan

React 6.4.0 Pengepala biasa untuk semua penghala

<p>Saya memulakan projek React menggunakan <code>react-router-dom</code> versi 6.4.0 tetapi saya tidak boleh membuat pengepala biasa untuk semua laluan. </p> <p>App.js - Ini ialah fail yang saya tambahkan <code>RouterProvider</code></p> <pre class="brush:php;toolbar:false;">import logo daripada './logo.svg'; import './App.css'; import { Link, Outlet, RouterProvider } daripada "react-router-dom"; import { routers } dari "./routes/routes"; fungsi Apl() { kembali ( <RouterProvider router={router}> <div>Tajuk</div> <Alur keluar /> </RouterProvider> ); } eksport Apl lalai;</pre> <p>routes.js - Dalam fail ini saya akan mencipta semua laluan</p> <pre class="brush:php;toolbar:false;">import { createBrowserRouter, redirect } daripada "react-router-dom"; import Perihal dari "../pages/About/About"; import Laman Utama dari "../pages/Home/Home"; import { getUser, isAuthenticated } daripada "../sso/authUtil"; const authLoader = () => if (!isAuthenticated()) { return redirect("https://google.com"); } lain { kembalikan getUser(); } }; eksport const router = createBrowserRouter([ { laluan: "/", elemen: <Laman Utama />, pemuat: authLoader, }, { laluan: "/tentang", elemen: <Mengenai />, }, ]);</pre> <p>Home.js - Fail ini ialah halaman utama dan mengandungi pautan ke halaman lain serta tajuk</p> <pre class="brush:php;toolbar:false;">import React daripada "react"; import { Link, Outlet, useLoaderData } daripada "react-router-dom"; const Laman Utama = () => const loaderData = useLoaderData(); kembali ( <> <div>Tajuk</div> <Pautan ke="/">Laman Utama</Pautan> <Pautan ke="/about">About</Link> <div>Laman Utama: {loaderData}</div>{" <Alur keluar /> </> ); } eksport lalai Laman Utama;</pre> <p>About.js - Ini ialah komponen biasa yang mewakili tentang</p> <pre class="brush:php;toolbar:false;">import React daripada "react"; const Tentang = () => kembali <div>Mengenai</div>; }; eksport lalai Mengenai;</pre> <p>Saya mahu <kod>Laman Utama</kod> dan <kod>Mengenai</kod> </p>
P粉864872812P粉864872812446 hari yang lalu479

membalas semua(1)saya akan balas

  • P粉909476457

    P粉9094764572023-08-26 13:52:56

    Walaupun dalam react-router-dom@6.4.0, penghalaan dengan reka letak pemaparan UI generik masih berfungsi dengan baik.

    Buat komponen laluan reka letak yang menjadikan komponen pengepala biasa dan satu untuk laluan bersarang Outlet.

    Contoh:

    const Layout = () => (
      <>
        <CommonHeader />
        <Outlet />
      </>
    );

    Diimport dan diberikan pada laluan susun atur dalam konfigurasi Layout.

    const routers = createBrowserRouter([
      {
        element: <Layout />,
        children: [
          {
            path: "/",
            element: <Home />,
            loader: authLoader
          },
          {
            path: "/about",
            element: <About />
          }
        ]
      }
    ]);

    ...

    function App() {
      return <RouterProvider router={routers} />;
    }

    balas
    0
  • Batalbalas