如何在 nextjs 中添加活动的 className

Posted

技术标签:

【中文标题】如何在 nextjs 中添加活动的 className【英文标题】:How to add active className in nextjs 【发布时间】:2020-12-06 16:45:32 【问题描述】:

我是 Nextjs 的新手。选择导航链接时,我必须有一个活动的类名。我在我的项目中使用 Nextjs+react-bootstrap。我要实现的功能是当有人点击特定链接时,它的颜色应该改变

我的导航栏组件看起来像这样 -

import React from "react";
import  Navbar, Nav, Button  from "react-bootstrap";
import Link from "next/link";
import "../../styles/Header.module.css";

const Header = () => 
  return (
    <div className="header">
      <Navbar expand="lg">
        <Link href="/">
          <Navbar.Brand style= padding: "8px 50px" >
            <img
              src="/logo.svg"
              left="60px"
              top="25px"
              
              
              className="d-inline-block align-top"
              
            />
          </Navbar.Brand>
        </Link>
        <Navbar.Toggle aria-controls="basic-navbar-nav" />
        <Navbar.Collapse id="basic-navbar-nav" className="justify-content-end">
          <Nav className="ml-auto">
            <Link href="/classes" passHref>
              <Nav.Link style= padding: "8px 50px" >Classes</Nav.Link>
            </Link>
            <Link href="/clubs" passHref>
              <Nav.Link style= padding: "8px 50px" >Clubs</Nav.Link>
            </Link>
            <Link href="/aboutUs" passHref>
              <Nav.Link style= padding: "8px 50px" >AboutUs</Nav.Link>
            </Link>
          </Nav>
          <Button variant="warning" size="sm">
            Chat with us
          </Button>
        </Navbar.Collapse>
      </Navbar>
    </div>
  );
;

export default Header;

【问题讨论】:

查看thread 【参考方案1】:

这种特殊版本的 Link 标记称为 NavLink,当它与当前 URL 匹配时,它会向呈现的元素添加样式属性

当元素处于活动状态时,通过写入将类赋予:

<NavLink to="/about" activeClassName="active">
  About
</NavLink>'

【讨论】:

以上是关于如何在 nextjs 中添加活动的 className的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nextjs 应用程序的导航栏上从左到右添加动画?

NextJs - 我们可以在哪里添加 <script> 代码?

如何使用 nextjs 更新状态? [复制]

Nextjs如何从另一个页面中删除html类

在 NextJS 路由中的 slug 前面添加符号(例如 @)

如何在 nx 工作区的 VSCode 中运行 NextJS 客户端调试器