Как мне дать ответному маршрутизатору Outlet имя класса?

Я использую реакцию с маршрутизатором реакции для маршрутизации на стороне клиента. У меня есть заголовок, выход и нижний колонтитул. Я хочу дать Outlet имя класса, чтобы каждый компонент имел верхний край. Есть ли способ сделать это или мне нужно создать компонент-оболочку, окружающую Outlet?

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

Ответы 2

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

Компонент <Outlet /> React Router Dom не имеет реквизита className. Если вы хотите применить к компоненту стиль, который в конечном итоге заменит заполнитель компонента Outlet, вам следует обернуть Outlet элементом HTML и передать свой реквизит className или style элементу HTML, а затем передать соответствующий класс, который применяется margin-top к этому.

<main className = "mt-10">
   <Outlet />
</main>

У меня есть заголовок, выход и нижний колонтитул. Я хочу дать Outlet имя класса, чтобы каждый компонент получал верхний край. Есть ли способ для этого или мне нужно создать компонент-оболочку, окружающую Выход?

Сам компонент Outlet не является каким-либо компонентом или элементом HTML, который принимает свойство className и не отображается визуально на экране. По сути, это невидимый контейнер для вложенных маршрутов, в котором отображается их element-контент.

См. Аутлет: Единственный доступный реквизит — это тот context реквизит, который он может предоставить.

interface OutletProps {
  context?: unknown;
}
declare function Outlet(
  props: OutletProps
): React.ReactElement | null;

Любой стиль пользовательского интерфейса, который вы хотите применить, должен быть реализован в компоненте маршрута макета, отображающем Outlet. Да, вам нужно будет обернуть Outlet во что-нибудь стильное.

Тривиальный пример:

const AppLayout = () => (
  <div>
    <Header />
    <div style = {{ marginTop: "2rem" }}>
      <Outlet />
    </div>
    <Footer />
  </div>
);
<Routes>
  <Route element = {<AppLayout />}>
    {/* Routes with header, footer, and margin-top applied */}
  </Route>
  {/* Route without header, footer, and no margin-top */}
</Routes>

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