Как сделать сложный routing в react?

Я только изучаю reac и у меня вопрос по react-router-dom. Я даже не знаю как это описать.
У нас есть главная страница с меню и контентом под каждый пункт меню. Это сделать просто. Я обернул в приложение и в контенте я пишу Route и показываю ту страницу по которой мы кликнули в меню.
Я решил добавить кнопку sign in в header и мне хочется что бы мое приложение работало так:
path="/" - показываем все приложение
path="/sign-in" - показываем только страницу входа на сайт ( что бы не было ни header ни меню)
path="/news - показываем приложение header menu и раздел новости.

С тем что path="/" and path="/news" я все понимаю как оно работает. Вот только не могу понять как в эту схему роутинга встроить страницу с path="/sign-in" , что бы при этом пути показывалась только ее содержание (без header(a)). Заранее спасибо.
  • Вопрос задан
  • 279 просмотров
Решения вопроса 1
@Yurajun Автор вопроса
Спасибо за совет. Мне не помогло это решение.
A как делают такие вещи. Может есть простое универсальное решение описанное где то (пример). Или все делают вот так (пример) и ни кто не парится. Думаю мне для начала хватит и какой то стандартной заготовки. Если не сложно, то посоветуйте что нибудь, какое нибудь такое решение которое вы используете в 80 % случаев.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Как вариант решения, написать компонент-контейнер MainLayout:
const MainLayout = ({ children }) => (
  <Wrapper>
    <Header />
    <Content>
      {children}
    </Content>
    <Footer />
  </Wrapper>
);

В компоненте App:
<Switch>
  <Route exact path="/" component={Main} />
  {/* остальные роуты */}
</Switch>

В pages/Main и остальные страницы с хедером и футером:
const Main = () => (
  <MainLayout>
    {/* тут содержимое страницы */}
  </MainLayout>
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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