【问题标题】:React router v4 active anchor linkReact 路由器 v4 主动锚链接
【发布时间】:2018-05-09 09:10:18
【问题描述】:

我的应用中有 链接。如果anchor link 处于活动状态,我如何使活动样式起作用。

<NavLink
  to="/#somewhere"
  activeClassName="selected"
>AnchorLink</NavLink>

【问题讨论】:

  • 活跃风格是什么意思?你是说紫色链接吗?这似乎更像是一个 CSS 问题。
  • @Li357 我的意思是如果链接处于活动状态 - 那么“选定”类将应用于它,但在反应路由器中不适用于锚链接

标签: javascript reactjs react-router


【解决方案1】:

对于当前活动链接的样式,您可以为参数activeClassName 中提供的类赋予样式,但它不适用于哈希 URL,但对于活动类,我们可以将 location.hash 与我们的哈希名称进行比较。

示例:

<li>
          <Link className={location.hash == "#about" ? "active" : ""} to='#about'>
          About
        </Link>
        </li>
        <li>
          <Link className={location.hash == "#user" ? "active" : ""} to='#user'>
          User
        </Link>
        </li>
        <li>
          <Link className={location.hash == "#repo" ? "active" : ""} to='#repo'>
          Repository
        </Link>
</li>

所以对于这个例子,我们提供了样式

.active {
  font-weight: bold;
}

所以字体只会对当前活动的链接加粗。

【讨论】:

  • 我说的是锚链接,不是一个简单的链接。你的例子行不通。
  • 请给我看一个 /#anchor-link 的例子,因为在我的情况下它不起作用,因为位置路径是 / 而链接是 /#anchor-link
  • 我遇到了你的问题,我为此找到了这些解决方案。 1.github.com/rafrex/react-router-hash-link 2.stackoverflow.com/a/29456595/4591943
  • 我已经解决了路由的问题但是我还没有解决在导航栏菜单中高亮锚链接的问题
  • 有一个 hacky 解决方案,但它适用于应用活动类,您可以将 window.hash 与链接哈希 url 进行比较
猜你喜欢
  • 1970-01-01
  • 2018-02-16
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 2018-12-31
  • 2017-08-02
  • 2019-02-04
相关资源
最近更新 更多