React Router createBrowserRouter() не отображает дочерние элементы

Я хочу иметь навигационную панель в качестве корневого элемента, а затем добавить домашнюю страницу в качестве дочернего элемента, но из того, что я вижу, когда помещаю элемент в дочерние элементы: [ ] он никогда не отображается, пока работает вне дочерних элементов.

Вот фрагмент кода Index.js:

import ReactDOM from 'react-dom/client';
import './index.css';
import {
  createBrowserRouter,
  RouterProvider,
} from "react-router-dom";
import Navbar from './components/navbar';
import Home from './components/home';

import Assets from './components/assets';
import ErrorPage from "./components/errorPage";
import PathNotFound from './components/pathNotFound';

const router = createBrowserRouter([
  {
    path: "/",
    element: <Navbar />,
    errorElement: <ErrorPage />, 
    children: [
      {
        index: true,
        element: <Home />,
      },
      {
        path: "/assets",
        element: <Assets />,
      },
      {
        path:"*",
        element: <PathNotFound />,
      },
    ]
  },
  
]);

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <RouterProvider router = {router} />
  </React.StrictMode>
);

Я следовал и даже скопировал из официальной документации для вложенных элементов ReactRouter...

Поведение ключевого слова "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) для оценки ваших знаний,...
2
0
107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

При создании/рендеринге маршрутов макета компонент маршрута макета обязательно должен отображать компонент Outlet для вложенных маршрутов, чтобы отображать их element содержимое.

Пример:

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

const Navbar = () => {
  ...

  return (
    ... Navbar UI JSX

    <Outlet /> // <-- Nested routes render out here

    ...
  );
};

export default Navbar;

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