首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

REACT.JS:如何遍历所有NavBar按钮并移除它们的类,并将“活动”类添加到所单击的按钮中

React.js是一个用于构建用户界面的JavaScript库。它采用组件化的开发模式,使得开发者可以将界面拆分成独立的、可复用的组件,从而提高代码的可维护性和可重用性。

要遍历所有NavBar按钮并移除它们的类,并将“活动”类添加到所单击的按钮中,可以按照以下步骤进行操作:

  1. 创建一个React组件,用于渲染NavBar和按钮。在组件的state中,定义一个属性来保存当前活动按钮的索引。
  2. 在组件的render方法中,使用map函数遍历按钮数据,并渲染每个按钮。为每个按钮添加一个点击事件处理函数。
  3. 在点击事件处理函数中,使用setState方法更新当前活动按钮的索引。这将触发组件的重新渲染。
  4. 在组件的render方法中,根据当前活动按钮的索引,为对应的按钮添加“活动”类,同时移除其他按钮的类。

下面是一个示例代码:

代码语言:txt
复制
import React, { Component } from 'react';

class NavBar extends Component {
  constructor(props) {
    super(props);
    this.state = {
      activeButtonIndex: null
    };
  }

  handleClick(index) {
    this.setState({ activeButtonIndex: index });
  }

  render() {
    const buttons = ['按钮1', '按钮2', '按钮3']; // 按钮数据

    return (
      <div className="navbar">
        {buttons.map((button, index) => (
          <button
            key={index}
            className={index === this.state.activeButtonIndex ? 'active' : ''}
            onClick={() => this.handleClick(index)}
          >
            {button}
          </button>
        ))}
      </div>
    );
  }
}

export default NavBar;

在上述代码中,我们使用了一个数组buttons来存储按钮的文本内容。在render方法中,我们使用map函数遍历buttons数组,并为每个按钮添加了点击事件处理函数handleClick。在点击事件处理函数中,我们使用setState方法更新activeButtonIndex属性,从而触发组件的重新渲染。

在渲染每个按钮时,我们根据当前活动按钮的索引,为对应的按钮添加了active类,以突出显示当前活动按钮。其他按钮则没有添加该类。

这样,当用户点击某个按钮时,该按钮将被突出显示为活动状态,其他按钮则恢复为非活动状态。

关于React.js的更多信息,你可以参考腾讯云的React.js产品介绍页面:React.js产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 jQuery Mobile 中使用 UI 组件

第二个选项是在对话框超链接上使用 data-rel 属性,并将其值设置为 back,如以下代码所示。当在对话框包括一个 Cancel 按钮时,这是一个不错选项。...根据您添加到 navbar 按钮数量,它将这些按钮平均分布,使它们大小都一样。...要创建一个 navbar,您只需将一个 data-role 属性添加到环绕着一个列表元素,并将其值设置为 navbar(清单 3)。...对列表提供更多功能一个选项称为拆分按钮列表。拆分按钮列表使您能够在同一个列表项中提供两个可单击选项。...本文并未介绍由该框架所提供组件完整列表,如需了解有关框架组件更多信息观看它们运行,请查看 参考资料 链接。

8.1K20

Jump Start Bootstrap 第3章

在本节,我们将重点讨论如何使用Bootstrap推荐创建可重用HTML组件标记和。让我们从页眉开始。...首先,我们建立一个,包含两个navbar”和”navbar-default”;这些对于Bootstrap非常重要,因为它们确定了在哪里应用导航条和特效: <div class="<em>navbar</em>...这里,data-target属性持有我们尚未定义<em>的</em>部分<em>的</em>id。当<em>单击</em><em>按钮</em>时,该部分将被切换。<em>按钮</em><em>中</em><em>的</em>span元素用来显示图标【注:图标<em>中</em><em>的</em>横线】。...这里有一些<em>按钮</em>可以用<em>的</em>帮助<em>类</em>: btn-block: <em>按钮</em>跨域整行<em>所有</em>的网格 active:<em>按钮</em>显示成被点击<em>的</em>状态 disabled:<em>按钮</em>不可用,<em>并</em>显示成褪色状态;你要小心使用这个<em>类</em>,因为它将防止在输入和<em>按钮</em>元素上<em>单击</em>动作...使用符号代替小图像有很多优点,包括: 为小图像或精灵保存多个请求; 由于<em>它们</em>是字体图标,<em>它们</em><em>的</em>颜色和大小可以在使用CSS属性<em>的</em>过程<em>中</em>变化; 在<em>所有</em>的展示<em>中</em>,他们看起来都很干脆利落。

13.9K20
  • Jump Start Bootstrap 第4章

    让我展示一个如何使用这些事件例子。我已经写了下面的JQuery代码片段去监听所有的下拉插件状态,打印每个事件触发时状态。 <!...在本节,我们将使用Bootstrap创建一个警告消息,查看如何添加解除功能。 这里是”成功”警告消息代码: 每个警报都应该有一个警戒等级。...按钮 在前面的章节,我们看到了如何创建各种类型按钮。这里,我们将看到使用BootstrapJavaScript插件如何在不同状态使用它们,并且让它们切换状态。...所有复选框类型输入元素都应该封装在标签元素。这些标签必须有Bootstrap按钮。在这种情况下,我选择了灰色按钮。...添加data-dismiss使按钮单击时关闭模式对话框。 对于本体,我们需要一个包含modal-body元素。您可以将几乎任何内容放到该元素

    28.3K40

    关于“Python”核心知识点整理大全60

    你使用方法filter()来 获取合适数据,学习了如何将请求数据所有者同当前登录用户进行比较。 该让哪些数据可随便访问,该对哪些数据进行保护呢?...在本节,我将简要地介绍应用程序django-bootstrap3,演示如何将其继承到项目中,为 部署项目做好准备。...我们还将添加一些在模板中使用Bootstrap信息。删除base.html全部代码,输入下面的代码: base.html 1 {% load bootstrap3 %} 2 <!...如果用户单击这个按钮,将出现一个下拉列表,其中包含所有的导航元素。在用户缩小 浏览器窗口或在屏幕较小移动设备上显示网站时,collapse会使导航栏折叠起来。...在3处,我们在导航栏最左边显示项目名,并将其设置为到主页链接,因为它将出现在 这个项目的每个页面。 在4处,我们定义了一组让用户能够在网站中导航链接。

    13210

    Web 性能优化: 使用 React.memo() 提高 React 组件性能

    当我们单击 click Me 按钮时,它将 count 状态设置为 1。屏幕 0 就变成了 1。.当我们再次单击按钮时出现了问题,组件不应该重新呈现,因为状态没有更改。...在浏览器运行我们程序,多次单击 Click Me 按钮,会看到在控制打印很多次信息: 在我们控制台中有 “componentWillUpdate” 和 “componentWillUpdate”...试它,重新加载你浏览器,点击多次点击 Click Me 按钮: 现在,我们已经看到如何在 React 优化组件重新渲染,让我们看看我们如何在函数组件实现同样效果。...,函数组件没有像组件有状态(尽管它们现在利用Hooks useState出现使用状态),而且我们不能控制函数组件是否重新渲染,因为我们不能像在组件中使用生命周期方法。...打开 DevTools 单击 React 选项。在这里,更改 TestC 组件 count 为 5.

    5.6K41

    bootstrap源码分析之form、navbar

    ) 源码文件: _navbar.scss 1、主要进行了内部区域划分,如:head、其他区域;以及导航条位置定位 2、折叠器实现(在4.0已移除),也就是navbar-collapse,代替是...collapse,在按钮上面弹出隐藏层    2.1、Navbar-collapse:在大于breakpoint时,会强制显示(由于collapse默认是隐藏) 3、内容支持nav、brand、form...、toggler 4、Navbar-toggler(4.0移除):设定在屏幕小于breakpoint值时(768)显示,而在4.0则直接用collapse来展示此按钮,没有屏幕大小限制,navbar-toggle...6、Navbar-fixed-top/bottom:都是定位在上方、下方,有浮动影响 7、Navbar-brand:品牌,可以放网页名称、公司Logo等内容 8、Navbar-toggle:用于收缩单击图片...:原nav基础进行了一些兼容设置,主是在breakpoint-max下样式调整,以及在breakpointg下样式调整,还是去掉默认背景色,shadow等内容 10、Navbar-form:主要调整所有

    1.1K70

    如何使用MapTool构建交互式地牢RPG 【Gaming】

    在“将资源添加到库”对话框,选择位于左下角“RPTools”选项卡。这列出了RPTools服务器上所有可用免费艺术包、标记和地图等。单击可下载导入。...在出现“新建标记”对话框,为标记命名并将其设置为NPC或PC,然后单击“确定”按钮。 一旦一个标记在地图上,试着移动它,看看它移动是如何被控制到你指定网格上。...在“活动属性”窗口中,选择“标记属性”选项卡,然后单击左侧列“基本”类别。在*@HP下,添加*@MaxHP单击Update按钮单击“确定”按钮关闭窗口。 现在右键单击标记选择“编辑”。...在Details选项卡,启用Include Label应用于选定标记,并将所有其他值保留为默认值。给宏起一个比New更好名字,比如HPTracker,然后单击Apply和OK。...你活动现在有了新能力! 选择一个标记单击HPTracker按钮。输入要从标记扣除点数,单击“确定”,然后观察运行状况栏更改情况以反映标记新状态。

    4.4K60

    Excel编程周末速成班第18课:使用用户窗体创建自定义对话框

    这些对话框在Office称为用户窗体,可以包含你在属于Excel应用程序本身以及其他Windows应用程序对话框中看到所有元素,它们提供了非常强大编程工具,使你可以为Excel应用程序提供自定义可视界面...在用户窗体处于活动状态时,显示工具箱,包含可放在窗体上各种控件图标以及一个箭头图标,当你要使用该窗体上现有控件时可以选择它们。 属性窗口显示当前所选对象属性。...1.在VBA编辑器,选择“插入➪用户窗体”以将新用户窗体添加到当前工程。 2.在“属性”窗口中,将窗体Name属性更改为TestForm,并将其Caption属性更改为“用户窗体演示”。...6.再次单击该窗体,然后添加另一个命令按钮,将其Name属性更改为cmdClose并将其Caption属性更改为Close。...图18-3:完成用户窗体 下一步是将所需代码添加到该窗体。该代码放置在事件过程,并在用户执行某些操作时自动执行(在这种情况下,单击命令按钮时)。稍后你将了解有关事件和事件过程更多信息。

    11K30

    | TIA Portal SINAMICS 驱动集成完整指南

    在接下来部分,我们将介绍; · 如何使用在线检测将 SINAMICS 驱动添加到 TIA Portal 项目 · 如何设置和调试 SINAMICS G120C 驱动 · 如何使用 SINAMIC G120C...要将通用 PLC 添加到项目中,请双击项目树“添加新设备”。在添加新设备对话框向下滚动到“未指定 CPU 1500”,选择通用 PLC 目录号单击确定。...通过单击 Startdrive 树“调试向导”节点启动它。 应用 调试向导启动,我们看到第一步是指定我们正在使用驱动器应用程序应用程序。两个应用程序是标准和动态。...选择应用程序后,单击下一步。 如果您想要更精细地控制驱动器参数,您还可以切换到专家模式绕过调试向导。 设定点规范 在下一个屏幕,我们指定驱动器斜坡生成位置。...接受主控警告 激活控制面板后,我们可以看到电机测量处于活动状态。这意味着下次我们尝试运行驱动器时,电机测量将在静止状态下进行。 电机测量警告 单击前进按钮开始电机测量过程。

    3K30

    ArcGIS Pro2D和3D模式下绘制地图

    11.返回至威尼斯书签关闭创建要素窗格。 12.单击编辑选项卡,在管理编辑内容组单击保存按钮。 13.在保存编辑窗口中,单击是以保存所有编辑。...12.在编辑选项卡管理编辑内容组单击保存按钮以保存所有编辑内容。 13.单击快速访问工具栏上保存以保存您工程。 您已符号化图层修改了要素。在之前,地图符号化方式过于平淡且不够清晰。...接下来,您将从栅格移除未淹没地区值,这样它们就不能影响您分析。 8.在地理处理窗格单击返回按钮以返回到搜索框。 9.清除现有搜索输入设为空函数。单击设为空函数(空间分析工具)。...分区几何统计为每个区域所有像元定义相同值,从而计算栅格每个区域面积。由于您仅有一个值,所以仅有一个区域。 1.在地理处理窗格单击返回按钮以返回到搜索框。清除现有搜索输入分区几何统计。...9.在内容窗格,右键单击 Structures_Copy 图层单击移除。选中 Structures 图层以将其打开。 10.在地图选项卡选择组单击按位置选择按钮

    17110

    OpenCV3 和 Qt5 计算机视觉:1~5

    尝试遍历所有各种选项以熟悉项目类型。 知道可能项目类型是一个好主意,即使您不会立即使用它们。...它们用于提示操作。 您可能会注意到,单选按钮和复选框也在该组,这是因为它们都继承自QAbstractButton,该类是一个抽象,提供了按钮小部件所需所有接口。...工具按钮:这些按钮按钮非常相似,但通常添加到工具栏 Qt 窗口共有 3 种不同类型条(实际上,一般来说是 Windows),它们在小部件工具箱不可用,但是可以通过右键单击 Windows 窗口来创建...该项目几乎包括 Qt 提供所有基本功能,尽管我们没有过多地讨论如何将项目构建到具有用户界面和(几乎可以接受)行为应用。 在本节,您将了解单击“运行”按钮时幕后发生情况。...在本节,我们将学习它们学习如何在 OpenCV 和 Qt 之间进行链接,以获得更灵活计算机视觉应用开发体验。

    5.9K20

    使用 SwiftUI 为 macOS 创建类似于 App Store Connect 选择器

    前言最近,我一直在为我应用开发一个全新界面,它可以让你查看 TestFlight 上所有可用构建,允许你将它们添加到测试群组。...所有可用于添加到构建中测试群组数组。父视图负责提供这些信息,正如我们将在下一节中看到那样。一个状态属性,用于跟踪用户悬停测试群组。此属性值用于在用户悬停在上面时显示一个移除按钮。...使用 .overlay 修改器在用户悬停在测试群组组件上时显示一个移除按钮。该按钮从构建所属测试群组列表移除测试群组。...作者在应用程序添加了一个新界面,允许用户查看 TestFlight 上所有可用构建,并将它们添加到测试群组。...在 BetaGroupPicker ,用户可以看到构建所属测试群组,并有选择地将它们添加到或从构建中移除

    19232

    前端必读2.0:如何在React 中使用SpreadJS导入和导出 Excel 文件

    经过几个小时原型构建后,技术团队确认所有客户需求文档描述功能都已经实现了,并且原型可以在截止日期前做好演示准备。...mod=attachment&aid=MjMzODA0fDFlMjU0OTU2fDE2NjM4MzYxNjZ8NjI2NzZ8OTk3MTg%3D 如何把前端表格添加到React应用 你可以看到在...单击按钮将触发一个名为 exportSheet 事件处理程序。...这个过程是导出逆过程,所以让我们从 XLSX 文件开始。 此功能访问点是另一个按钮,我们需要将其添加到 SalesTable 组件 JSX 代码末尾。...最后,你查看客户请求验证你应用程序是否满足所有要求! 我们可以扩展这些想法并为我们应用程序探索其他令人兴奋功能。

    5.9K20

    一键完成对话需求?这款插件你不能错过(Unity3D)

    对话编辑器 对话管理器 对话管理器是您场景一个GameObject,它协调所有的对话系统活动保存对话系统运行时数据。...单击Edit按钮或对话系统图标。这将打开“对话编辑器”窗口: 步骤5.单击Conversations标签。 单击“+”按钮添加新会话。 右键单击橙色START节点选择创建子节点。...在大多数情况下,您可能会在对话期间使用指向单击Lua向导来设置任务状态,因此你可能永远不需要使用这个许多方法。...如果GameObject开始不活动,将此组件添加到保证为活动不同GameObject分配目标GameObject。...如何在对话编辑器本地化 使用对话编辑器进行本地化最简单方法是向template选项卡上模板添加本地化字段。这样,当您添加它们时,它们将自动添加到资产中。

    4.7K20

    《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)

    单击“创建新项目”。...这是我们将使用模板,并从头开始手动设置所有内容,以便我们清楚地了解不同部分如何组合在一起。...它不会创建 Models 和Views文件夹,因为它们不是API必需。下面的屏幕截图显示了我使用API模板创建项目。请注意,我们只有Controllers文件夹。...我们将在即将发布视频详细讨论Razor Pages。 Razor库(RCL):顾名思义,我们使用此模板创建可复用Razor库项目。...该项目包含所有可复用用户界面部分,如数据模型,页面模型,控制器,页面,Razor视图和View组件。然后,可以在多个应用程序复用此Razor库(RCL)项目。

    3.9K20

    第五章-处理多窗口 | Electron实战

    图5.2 在本章,我们将更新Fire Sale以支持多个窗口促进他们之间沟通。 ? 我们首先实例化一个Set数据结构,该结构于2015年添加到JavaScript,跟踪用户所有窗口。...; }; 这个createWindow()函数创建一个BrowserWindow实例并将添加到我们在清单5.1创建一组窗口中。...在实现上一章事件监听器之后单击new File按钮,您可能会对它是否正常工作感到困惑。...如果有一个窗口,我们调用它getWindow()方法,该方法返回一个此窗口x和y坐标的数组。我们将把这些值存储在条件块之外两个变量并将它们传递给BrowserWindow构造函数。...保持应用程序活动是成功一半,如果用户单击dock应用程序而没有打开窗口,会发生什么?在这种情况下,Fire Sale应该打开一个新窗口显示给用户,如下所示。

    4.2K21

    Green主题(绿色元素为主)

    Jаvascript 为代码块添加一个"复制代码"按钮实现点击按钮后将代码块内容复制到剪贴板。...首先通过document.querySelectorAll('pre')获取所有元素(即代码块)。 使用forEach方法遍历每个代码块。...创建一个容器元素 container,设置其class为"code-container",并将复制按钮添加到容器元素内。 将容器元素插入到代码块之前。...创建一个临时 元素,并将代码块内容设置为其值。 将 元素追加到 。 选中 文本。...执行复制操作,将选中文本复制到剪贴板移除临时 元素。 修改复制按钮文本为"复制成功"。 这段代码作用是为网页代码块添加一个复制按钮,方便复制代码片段。

    20340
    领券