Hyperlink 为什么activeClassName是盖茨比的';s链接组件不适用于我的锚链接?

Hyperlink 为什么activeClassName是盖茨比的';s链接组件不适用于我的锚链接?,hyperlink,gatsby,Hyperlink,Gatsby,因此,我试图创建一个单页网站,我只希望导航链接滚动到锚链接点击。我想知道为什么当我点击这些锚链接时activeClassName不起作用。我注意到,单击锚链接时显示的活动链接是父链接 我已经尝试对父链接使用partiallyActive={false},但仍然没有任何结果 这是我的代码: <li> <Link className={headerStyles.navItem} activeClassName={headerStyles.navItemActive} to="/

因此,我试图创建一个单页网站,我只希望导航链接滚动到锚链接点击。我想知道为什么当我点击这些锚链接时activeClassName不起作用。我注意到,单击锚链接时显示的活动链接是父链接

我已经尝试对父链接使用partiallyActive={false},但仍然没有任何结果

这是我的代码:

<li>
  <Link className={headerStyles.navItem} activeClassName={headerStyles.navItemActive} to="/" partiallyActive={false}>
    Home
  </Link>
</li>

<li>
  <Link className={headerStyles.navItem} activeClassName={headerStyles.navItemActive} to="/#portfolio">Portfolio
  </Link>
</li>
  • 文件夹
  • 我希望点击后“公文包”链接会突出显示,但突出显示仍保留在“主页”链接上。url也会更改,但activeClassName不会从“Home”转移到“Portfolio”。这到底是怎么回事?activeClassName对锚定链接不起作用吗?

    如上所述,您不能对Gatsby的
    链接使用哈希:

    无论是
    还是
    导航
    都不能用于带有散列或查询参数的路线内导航。如果您需要这种行为,您应该使用锚定标记或导入Gatsby已经依赖的
    @reach/router
    包,以利用其
    导航
    功能


    还请注意,如果在“/#公文包”链接上将
    partiallyActive
    设置为true,则“/#公文包”也匹配“/”,则“/”链接将高亮显示。

    您不应将链接组件用于锚定,请使用普通锚定标记。我也有同样的问题,并且不使用哈希链接。