@Wales

Как наилучшим образом скрыть див на определенной странице в React?

Имеется реакт без всяких свистоперделок, только react-router
И по задумке главная страница и 404 страница отличаются от других шаблоном:
404 не имеет шапки и футера, на главной же в шапке не должно быть лого
На данный момент пошерстив документацию сделал 404ую, используя High Order Component (HOC) примерно таким образом:
// Это основное приложение с роутером и HOC
function i(Page){
   return class HF extends React.Component{
     render(){
       return (
         <Content><Page /></Content>
       );
     }
   };
 }

class App extends Component {
  render() {
    return (
      <BrowserRouter>
        <div>
          <Switch>
            <Route exact path={'/'} component={i(Home)} />
            <Route exact path={'/contacts'} component={i(Contact)} />
            <Route component={Error} />
          </Switch>

        </div>
      </BrowserRouter>
    );
  }
}

То есть страницы оборачиваются в компонент Content, который выглядит вот так:
export class Content extends React.Component{
  render(){
    return(
      <div>
          <div className="head_panel">
            <div className="logotype">
              <img src={logo}></img>
            </div>
              <Nav />
          </div>
        <div className="main-page">
          {this.props.children}
        </div>
         <div className="footer">
              
            </div>
      </div>
    )
  }
}


Собственно вопрос: как без написания второго HOC сделать прогрузку страницы без логотипа в шапке?
  • Вопрос задан
  • 469 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
В случае с HOC как-то так:
<Route exact path={'/contacts'} component={i({ shouldShowLogo: false })(Contact)} />

Я бы вместо HOC использовал компонент в коде страницы:
render() {
  return(
    <PageLayout shouldShowLogo={false}>
      {/* код страницы */}
    </PageLayout>
  );
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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