@Scryppi

Как убрать глобальный хедер на некоторых страницах react?

Есть структура:
render(
  (
      <ReduxProvider store={store}>
          <LangProvider>
              <ThemeProvider theme={theme}>
                  <ReactRouter>
                      <div>
                          <Switch>
                              <Route path="/sign-in" component={SignInPage}/>
                              <Route path="/sign-up" component={SignUpPage}/>
                              <Route path="/sign-forgot" component={SignForgotPage}/>
                          </Switch>

                          <Header />
                          <Route exact path="/" component={HomePage}/>
                          <Route path="/product/:id" component={ProductPage}/>
                          <Route path="/setting" component={SettingPage} />
                          <Route path="/orders" component={OrdersPage} />
                          <Route path="/reviews" component={ReviewsPage} />
                          <Route path="/shop/:id" component={ShopPage} />
                          <Route path="/category/:id" component={CategoryPage} />
                          <Route path="/cart" component={CartPage} />
                          <Route path="/favorites" component={FavoritesPage} />
                          <Route path="/categories/:id" component={CategoriesPage} />
                          <Route path="/article/:id" component={ArticlePage} />
                          <Footer />
                      </div>
                  </ReactRouter>
              </ThemeProvider>
          </LangProvider>
      </ReduxProvider>
  ),
  document.getElementById('root')
);


У меня на всех страницах хедер и футер отрендеренный при первой загрузке. Но есть страницы sign-in, sign-up и sign-forgot. Там нужно скрывать хедер и футер. Прошу помощи. Видел, что можно делать layout'ы, но в 4 версии вроде запретили помещать дочерние элементы в Route.

Думал делать проверки на puth в url, есть ли там sign. Но подумал, вдруг есть встроенные инструменты для этого в react-router
  • Вопрос задан
  • 1568 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Там нужно скрывать хедер и футер.

Правильней будет там его вообще не рендерить.

Один из многочисленных вариантов решения:
<Switch>
  <Route path="/(sign-in|sign-up|sign-forgot)" component={AuthRoutes} />
  <Route component={MainRoutes} />
</Switch>


Думал делать проверки на puth в url, есть ли там sign.

Костыли.

Видел, что можно делать layout'ы, но в 4 версии вроде запретили помещать дочерние элементы в Route.

Но подумал, вдруг есть встроенные инструменты для этого в react-router

А почему бы, вместо того чтобы терзать себя догадками, не сесть и изучить документацию инструмента, который используешь в работе?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы