Я использую React-Router-Dom для маршрутизации страниц и <Outlet/> для навигации. Однако он не работает так, как ожидалось

Я включил компонент Outlet в свою настройку, чтобы обеспечить плавную навигацию по всем страницам. Однако, несмотря на реализацию, он не отображается должным образом на каждой странице.

Приложение.js

import { createBrowserRouter,RouterProvider } from "react-router-dom";
import HomePage from "./Pages/home";
import Contact from './Pages/contact';
import AboutPage from "./Pages/About";
import RootLayout from "./Pages/Root";
import ProductPage from "./Pages/Product";
import ProductDetails from "./Pages/ProductDetails";

const router = createBrowserRouter([
  {
      path: '/',
      elements: <RootLayout />,
      errorElement: <ErrorPage />,
      children: [
        {path:'/', element:<HomePage />},
          { path: 'contact', element: <Contact /> },
          { path: 'about', element: <AboutPage /> },
          { path: 'product', element: <ProductPage /> },
          { path: 'product/:productId', element: <ProductDetails /> },
      ],
  },
]);


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

export default App;

Маршрут.js

import {Outlet} from "react-router-dom";
import Navigation from "../components/navigation";

const RootLayout=()=>{
    return (
        <>
       <Navigation />
       <Outlet />
       </>
    )
}
export default RootLayout;

Навигация.js

import {NavLink} from 'react-router-dom';
const Navigation=()=>{
    return (
        <header>
            <nav>
                <ul>
                    <li><NavLink to='/' className = {({isActive})=>
            isActive? 'active': undefined
                    }
                    end
                    >Home</NavLink>
                    </li>
                    <li><NavLink to='/contact' className = {(isActive)=>
                        isActive?'active':undefined
                    }
                    end
                    >
                    Contact</NavLink>
                    </li>
                    <li><NavLink to='/about'>About</NavLink></li>
                </ul>
            </nav>
        </header>
    )
}

export default Navigation;

Навигация должна была появиться на каждой странице, но она не появляется ни на одной странице. Я использую Outlet, который является частью библиотеки React-Router-Dom. Предполагалось, что панель навигации будет отображаться на каждой странице.

element: <RootLayout /> вместо elements: <RootLayout />
Mina 20.05.2024 11:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

elements недействителен. Вместо этого используйте element. Ниже приведен обновленный код:

const router = createBrowserRouter([
  {
    path: '/',
    element: <RootLayout />, // Fixed from 'elements' to 'element'
    errorElement: <ErrorPage />,
    children: [
      { path: '/', element: <HomePage /> },
      { path: 'contact', element: <Contact /> },
      { path: 'about', element: <AboutPage /> },
      { path: 'product', element: <ProductPage /> },
      { path: 'product/:productId', element: <ProductDetails /> },
    ],
  },
]);

Другие вопросы по теме

Похожие вопросы