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

#html #css #reactjs #react-router

#HTML #css #reactjs #реагировать-маршрутизатор

Вопрос:

Я создаю веб-сайт с помощью React, и я хотел бы, чтобы моя панель навигации имела другой цвет фона в зависимости от текущего маршрута. Мой App.js выглядит примерно так:

 class App extends React.Component {

  render() {
    return (
      <Router>
        <div className="App">
          <div className="Navbar" >
            <Navbar />
          </div>
          <div className="Content">
            <Route path="/" exact render={() => <LandingPage />} />
            <Route path="/about" exact render={() => <AboutPage />} />
            <Route path="/contact" exact render={() => <ContactPage />} />
          </div>
        </div>
      </Router>
    );
  }
}
  

Предположим, я хочу прозрачный фон на домашней странице («/»), но сплошной цвет везде, каков наилучший способ изменить background свойство в <Navbar /> CSS для достижения того, чего я хочу?

Предположим, я сохранил свойства CSS, которые хотел бы изменить this.state , а затем вызываю функцию для их изменения всякий раз, когда происходит изменение маршрута?

Ответ №1:

Вы можете использовать контекстный api для изменения цвета фона любого из ваших компонентов. Итак, вам просто нужно определить значение контекста на основе разных URL-адресов.