React Link - Если совпадения местоположения переданы в Route, применить класс? - PullRequest
2 голосов
/ 14 марта 2019

У меня есть этот общий компонент, который вызывает SidebarLink:

<SidebarGroup>
  <SidebarLink>
    <Link to={routes.example1.path}>example1</Link>
  </SidebarLink>
  <SidebarLink>
    <Link to={routes.example2.path}>example2</Link>
  </SidebarLink>
</SidebarGroup>

SidebarLink записывается так:

const SidebarLink = ({ children }) => (
  <li className={styles.sidebarLink}>
    {children}
  </li>
);

Со следующими стилями (показаны только те, которые связаны с вопросом:

.sidebarLink a:hover, .sidebarLink a:active {
  font-weight: bold;
  cursor: pointer;
  text-decoration: none;
}

.sidebarLink:active:after {
  content: url('./chevron.svg');
  position: absolute;
  right: -10px;
}

, который добавляет некоторые общие стили, которые должны применяться при наведении (которые применяются правильно), и изображение стрелки, которое должно появляться, когда элемент активен.ожидается, когда вы щелкаете и удерживаете SidebarLink - однако, когда вы фактически отпускаете щелчок и он переходит к целевому URL, стили :active исчезают, и изображение следует за ним - даже при наличии активной вкладки / пункта меню.

Я пытался использовать NavLink вместо Link вместе со свойством activeClassName, но, похоже, это не имеет значения.

Есть ли способвозможно, скажем, в определении SidebarLink, если маршрут, который передается в соответствии с текущим местоположением, добавить определенный класс?

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