Подтвердить что ты не робот

Активная связь с React-Router?

Я пытаюсь запустить React-Router (v4), и у меня возникают проблемы с Nav, чтобы один из Link был active. Если я нажму на любой из тегов Link, тогда активная работа начнет работать. Тем не менее, я бы хотел, чтобы Home Link был активным, как только приложение запускается, так как это компонент, который загружается по маршруту /. Есть ли способ сделать это?

Вот мой текущий код:

const Router = () => (
  <BrowserRouter>
    <div>
      <Nav>
        <Link activeClassName='is-active' to='/'>Home</Link> {/* I want this to start off as active */}
        <Link activeClassName='is-active' to='/about'>About</Link>
      </Nav>

      <Match pattern='/' exactly component={Home} />
      <Match pattern='/about' exactly component={About} />
      <Miss component={NoMatch} />
    </div>
  </BrowserRouter>
)
4b9b3361

Ответ 1

<Link> больше не имеет свойств activeClassName или activeStyle. В response-router v4 вы должны использовать <NavLink>, если хотите сделать условный стиль:

const Router = () => (
  <BrowserRouter>
    <div>
      <Nav>
        <NavLink exact={true} activeClassName='is-active' to='/'>Home</NavLink>
        <NavLink activeClassName='is-active' to='/about'>About</NavLink>
      </Nav>

      <Match pattern='/' exactly component={Home} />
      <Match pattern='/about' exactly component={About} />
      <Miss component={NoMatch} />
    </div>
  </BrowserRouter>
)

Я добавил точное свойство для дома <NavLink>, я уверен, что без него главная ссылка всегда будет активной, так как / будет соответствовать /about и любым другим страницам, которые у вас есть.