NavLink из ReactStrap имеет непредвиденное поведение - «to» и «activeClassName» не применяются - PullRequest
0 голосов
/ 14 марта 2019

Существует более крупный компонент упаковки, называемый Sidenav:

const Sidenav = () => (
  <SidebarGroup>
    <SidebarLink to={routes.example1.path} name="example1" />
    <SidebarLink to={routes.example2.path} name="example2" />
  </SidebarGroup>
);

И компонент, который меня больше всего беспокоит:

const SidebarLink = ({ to, name }) => (
  <li className={styles.sidebarlink}>
    <NavLink to={to} activeClassName={styles.active}>{name}</NavLink>
  </li>
);

У меня есть 2 проблемы.

1) Обычно to отлично работает для перенаправления на целевой URL.Однако, когда я переключился на использование NavLink из ReactStrap против Link, to больше не работает - вместо этого необходимо использовать href, чтобы правильно выполнить действие перехода по клику.Другие примеры онлайн людей, использующих NavLink, все используют to - есть ли какая-то зависимость, по которой я скучаю?

2) Я хочу применить activeClassName к пункту меню, который в данный момент находится на вкладкена или нажимается.Гипотетически, опять же, синтаксис правильный, но он не работает, как ожидалось - в частности, класс .active не применяется, когда вы нажимаете или перемещаетесь по рассматриваемому пункту меню.Опять же, это ошибка зависимости или что-то еще?withRouter было предложено в одном месте, но это не имело значения.

Заранее спасибо за любые рекомендации!

...