Как я могу показать компонент реакции на всех маршрутах, кроме одного? - PullRequest
0 голосов
/ 01 марта 2019

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

<Router>
    <React.Fragment>
      <Route path={baseURL} component={ProjectButton} />
      <Route exact path={baseURL} component={Home} />
      <Route exact path={baseURL + '/about'} component={About} />
      <Route exact path={baseURL + '/work'} component={Work} />
      <Route exact path={baseURL + '/projects'} component={Projects} />
    </React.Fragment>
  </Router>

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете сделать это с помощью реквизита рендеринга:

<Route path={baseURL} render={props =>
  <>
    <Home />
    <ProjectButton />
  </>
} />

<Route {baseURL + '/projects'} render={props =>
  <Projects />
} />

Вы также можете передать несколько компонентов для маршрута, см. this

Или почему бы не обработать это вваш компонент?Вернуть ноль для определенных путей (лично я бы предпочел этот)

render() {
    const {pathname} = this.props.location;
    if(pathname === "/projects") {
        return null;
    }

    ..
    ..
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...