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

从所有按钮中删除活动的类,并将其添加到react中单击的最后一个按钮

在React中,要从所有按钮中删除活动的类,并将其添加到最后一个被点击的按钮,可以按照以下步骤进行操作:

  1. 首先,创建一个React组件,可以命名为ButtonList,用于渲染按钮列表和处理点击事件。
  2. ButtonList组件的构造函数中,初始化一个状态变量,用于存储最后一个被点击的按钮的索引。可以使用state对象来实现这个状态变量。
  3. ButtonList组件的render方法中,使用map函数遍历按钮数据,并渲染每个按钮。为每个按钮添加一个点击事件处理函数,该函数将更新状态变量为当前按钮的索引。
  4. 在点击事件处理函数中,首先从所有按钮中移除活动类。可以通过DOM操作或者使用React的ref来获取按钮元素,并使用classList对象的remove方法来移除活动类。
  5. 然后,将活动类添加到最后一个被点击的按钮。可以通过索引值来获取最后一个按钮的元素,并使用classList对象的add方法来添加活动类。

以下是示例代码:

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

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

  handleClick(index) {
    const buttons = document.querySelectorAll('.button'); // 获取所有按钮元素
    buttons.forEach(button => {
      button.classList.remove('active'); // 移除活动类
    });

    const lastClickedButton = buttons[index]; // 获取最后一个被点击的按钮元素
    lastClickedButton.classList.add('active'); // 添加活动类

    this.setState({ lastClickedIndex: index }); // 更新状态变量
  }

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

    return (
      <div>
        {buttonData.map((button, index) => (
          <button
            key={index}
            className="button"
            onClick={() => this.handleClick(index)}
          >
            {button}
          </button>
        ))}
      </div>
    );
  }
}

export default ButtonList;

在上述代码中,ButtonList组件会渲染一个按钮列表,并为每个按钮添加了点击事件处理函数handleClick。在点击事件处理函数中,会先移除所有按钮的活动类,然后将活动类添加到最后一个被点击的按钮。同时,状态变量lastClickedIndex会被更新为当前按钮的索引。

请注意,上述代码中没有提及任何特定的云计算品牌商,如果需要使用腾讯云相关产品来支持按钮列表的存储、部署等功能,可以根据具体需求选择适合的腾讯云产品,并在代码中进行相应的集成和调用。

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

相关·内容

Sweet Alert弹窗插件的安装及使用详解笔记

如果要显示并自定义取消按钮,可以设置 buttons 为一个字符串数组,其中第一个值是“取消”按钮的文本,第二个值是“确认”按钮的文本: swal("你确定要这么做吗?"...通过为其指定对象 buttons ,可以根据需求设置完全相同的按钮,并指定它们在单击时解析的值!...注意,我们使用 content: "input" ,以便在用户单击“确认”按钮时显示输入字段并检索它的值: swal({   text: '搜索一个电影,例如:"La La Land"。'...swal.setActionValue({ confirm: 'Text from input' }) stopLoading 删除模态按钮上的所有加载状态。...它有一个额外的类,根据按钮的类型改变 swal-button--{type} 。例如,确认按钮的额外类是 swal-button--confirm 。

9.3K10

如何在 React 中快速实现暗黑模式

此文件是在 React 应用程序制作过程中创建的。复制此文件中的信息并将其存储在剪贴板中,现在可以将其从 index.css 中删除。 修改 theme.js文件,它将由两部分组成。...第二部分是 "style:" 和 "body" 中的样式,这些式样是从index.css文件中复制的信息,如下所示。...接下来,创建一个按钮并添加“切换颜色模式”功能作为 onClick 的响应事件: {colorMode==='light'...'Dark' : 'Light'} 通过执行此操作,将创建一个切换按钮,该按钮根据当前主题显示“深色”或“浅色”,并允许用户通过单击按钮在两种模式之间切换。...在应用程序中实现切换开关后,用户应该能够通过单击按钮在深色和浅色模式之间切换。然后,网站的外观应相应更改。

67530
  • 基于 ChatGPT 和 React 搭建 JSON 转 TS 的 Web 应用

    for React 是一个十分简单的包,用于将代码编辑器添加到 React 应用程序,而 React Copy to Clipboard 包允许我们通过单击按钮复制和粘贴内容从 React 应用程序中删除多余的文件...它为删除按钮呈现一个 SVG 图标。...接下来,让我们添加一些额外的功能,例如通过单击按钮复制所有 Typescript 代码以及通过单击按钮清除输入编辑器的所有内容的能力。...text props(包含要复制的内容)和一个 onCopy 属性(一个在复制内容成功后运行的函数)删除用户输入======如果要删除所有用户的输入,需要将 value 作为 prop 传递到 中添加高效的代码编辑器如何在 Node.js 中与 ChatGPT 通信如何在 React 中单击按钮时复制与删除内容本教程完成一个可以使用 ChatGPT API 构建的应用程序示例。

    34210

    如何使用纯前端控件集 WijmoJS 中的可视化在线设计器

    开始使用WijmoJS Designer 设计器可视化界面首次打开时,该设计图面默认自带一个带有实时样本数据的纯前端FlexGrid表格控件,要删除它,请单击“编辑”工具栏上的“删除”按钮。...最后,最后一行为日历的valueChanged事件添加了一个Demo处理程序。 要返回可视化设计器,请单击页面左侧的“设计视图”按钮(“保存”按钮下方)。...从设计图面删除所有控件,然后在“工具箱”中展开图表组,并单击名为FlexChart的项目。 请注意,该图表显示代表“最活跃”证券的实时样本数据。...通过将其标题属性设置为Most Active,为图表添加标题。 找到palette属性,单击编辑器中的Show Colors按钮,然后选择一个预定义的值,例如dark。...在“属性”窗格中向下滚动,找到系列属性,然后单击“显示项目”按钮将其展开。 将鼠标悬停在最新价格上,然后单击出现的链接。

    5.9K20

    开发一个在线 Web 代码编辑器,如何?今天来教你!

    组件的 props 中解构了 title 和 onClick。在这里,title 是一个文本字符串,onClick 是一个在单击按钮时调用的函数。...最后,传入 {title} 作为按钮标签的内容 现在我们已经创建了一个可重用的按钮组件,让我们继续将我们的组件引入 App.js。...className="tab-button-container"作为包含三个选项卡按钮的 div 标记中的样式属性类。...接下来,我们来讨论一下 ControlledEditorComponent 中的东西: onBeforeChange 每当你向编辑器写入或从编辑器中删除时,都会调用此方法。...当然,如果你想的话,你可以将大量这些插件添加到你的编辑器中,以使其具有更丰富的功能。本文中,我们就不尝试所有功能了。 至此,我们大致完成了一个在线编辑器的应用。

    12.3K30

    【实战】快来和我一起开发一个在线 Web 代码编辑器

    组件的 props 中解构了 title 和 onClick。 在这里,title 是一个文本字符串,onClick 是一个在单击按钮时调用的函数。...最后,传入 {title} 作为按钮标签的内容 现在我们已经创建了一个可重用的按钮组件,让我们继续将我们的组件引入 App.js。...className="tab-button-container" 作为包含三个选项卡按钮的 div 标记中的样式属性类。...接下来,我们来讨论一下 ControlledEditorComponent 中的东西: onBeforeChange 每当你向编辑器写入或从编辑器中删除时,都会调用此方法。...当然,如果你想的话,你可以将大量这些插件添加到你的编辑器中,以使其具有更丰富的功能。本文中,我们就不尝试所有功能了。 至此,我们大致完成了一个在线编辑器的应用。

    81020

    旁路WAF:使用Burp插件绕过一些WAF设备

    但是,这取决于能否创建一个可用的头并将其添加到活动扫描,中继器请求,入侵者请求的插件等等。我发现Fishnet Security的这篇文章真的让人思如泉涌。...配置应该如下所示: 该插件现在应该被加载并显示如下: 现在您需要导航到“选项 - >会话”,然后单击“会话处理规则”配置部分的“添加”按钮,如下所示: 给规则一个名称,然后点击“规则操作”部分中的“添加...“Content-Type”头可以在每个请求中保持不变,从所有请求中删除,或修改为每个请求的许多其他选项之一。一些WAF只会根据已知的内容类型对请求进行解码/评估,这个功能针对的是弱点。 3....这可以用来绕过依赖于路径信息的不好写的规则 6.路径模糊功能将路径中的最后一个斜杠修改为随机值,或者默认情况下不执行任何操作。...最后一个斜杠可以修改为许多值中的一个,在许多情况下,这会导致仍然有效的请求,但可能会绕过编写的依赖路径信息的WAF规则 7.参数混淆特征是语言特定的。

    1.4K60

    Sentry Web 前端监控 - 最佳实践(官方教程)

    sentry.io/ 从左侧导航菜单中选择 Projects 以显示所有项目的列表 单击 + Create Project 按钮 注意:如果您的帐户中没有项目 --- 您可能会被重定向到入门向导以创建您的第一个项目...从项目下拉列表中,找到新项目并点击齿轮图标打开项目设置(Project Settings) 单击 Alerts 以打开警报配置页面 单击 New Alert Rule 在 “New Alert Rule...” 表单中,选择 “Issue Alert” 类型并输入以下值 每次在所有环境(All Environments)中通过邮件(Mail)看到事件时,新的警报规则都会通知选定的团队成员 单击 Save...将产品添加到购物车的按钮 单击左侧面板上的 Checkout 按钮以生成错误 请注意: 应用程序中显示出错消息 错误出现在浏览器控制台中 发送到您在 Sentry 上配置的电子邮件地址的警报,通知您应用中发生的错误...刷新浏览器并通过将产品添加到购物车并单击 Checkout 来生成错误 检查您的电子邮件以获取有关新错误的警报。

    4.3K20

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

    在“将资源添加到库”对话框中,选择位于左下角的“RPTools”选项卡。这列出了RPTools服务器上所有可用的免费艺术包、标记和地图等。单击可下载并导入。...在出现的“新建标记”对话框中,为标记命名并将其设置为NPC或PC,然后单击“确定”按钮。 一旦一个标记在地图上,试着移动它,看看它的移动是如何被控制到你指定的网格上的。...在“活动属性”窗口中,选择“标记属性”选项卡,然后单击左侧列中的“基本”类别。在*@HP下,添加*@MaxHP并单击Update按钮。单击“确定”按钮关闭窗口。 现在右键单击标记并选择“编辑”。...在编辑标记窗口中,选择Statetab 并输入标记最大HP的值(从玩家的字符表)。 若要创建新宏,请在“窗口”菜单中显示“活动”面板。 在“活动”面板中,单击鼠标右键,然后选择“添加新宏”。...你的活动现在有了新的能力! 选择一个标记并单击HPTracker按钮。输入要从标记中扣除的点数,单击“确定”,然后观察运行状况栏的更改情况以反映标记的新状态。

    4.4K60

    【愚公系列】《AIGC辅助软件开发》038-高阶产品应用开发:利用UE创建数字人

    选择一个 MetaHuman,单击“Download”按钮下载,下载完成后单击“+”将其添加到工程中。点击所有弹出框的“启用缺失”按钮,然后重启工程。...图片2.2 接受文字输入并显示我们用一个带按钮的文本框模拟与数字人交互的界面。首先打开关卡蓝图,图所示为模拟与数字人交互的界面。...管理捕捉视频: 单击“工具”菜单,打开捕捉管理器,查看保存的面部视频。 单击“添加到队列”按钮,将视频加入工程中。...下载完成后,单击 “+” 按钮将其添加到工程中。 选择当前人物路径下的网格体。注意,MetaHuman 网格体中,男性人物以 m (male) 开头,女性人物以 f (female) 开头。...添加角色到关卡: 添加成功后,在 MetaHuman 目录下找到角色,并将其添加到关卡中即可。

    16810

    Cheat Engine 官方教程汉化

    然后更改值并冻结地址,双击地址列表中的值进行编辑,通过单击启用码/冻结框将其冻结。 现在应该启用下一个按钮,单击它以转到下一步。如果下一个按钮尚未启用,请再次单击点击我按钮。...设置时,单击第一个扫描按钮。 因此,只需像以前一样扫描以查找健康地址,然后将其添加到地址列表中。 现在再次单击新的扫描按钮。然后将扫描仪设置为双精度值,输入当前弹药值。...最后不要忘记单击停止按钮。 替换按钮会将该行代码替换为NOP。作弊引擎将提示您输入它将添加到高级选项列表中的条目的名称。 输入名称,然后单击确定按钮。 现在,单击教程中的更改值按钮。...如果下一个按钮未启用,则从找到的列表中选择另一个地址,查找更改其值的绿色地址,并将其设置为与上一个地址一样,并查看它是否指向正确的值,如果是这样,请更改值冻结并单击更改指针按钮。...然后单击所有 4 个值的攻击按钮。调试器列表中应具有所有 4 个地址。 因此,请继续将它们添加到地址列表中。 然后,让我们打开剖析数据结构表单。

    2.7K10

    如何结合 Core Data 和 SwiftUI

    设置核心数据需要两个步骤:创建所谓的持久性容器(从容器存储中加载并保存实际数据),然后将其注入 SwiftUI 环境中,以便我们所有的视图都可以访问它。 Xcode 模板已经为我们完成了这两个步骤。...使用获取请求从 Core Data 中检索信息——我们描述了我们想要的内容,应如何对其进行排序以及是否应使用任何过滤器,然后 Core Data 会发回所有匹配的数据。...这是一个引发函数的调用,因为理论上它可能会失败。实际上,我们所做的一切都没有失败的可能,因此我们可以使用try?来调用它——–我们不在乎捕获错误。 因此,请将最后一行添加到按钮的操作中: try?...self.moc.save() 最后,您现在应该可以运行该应用程序并对其进行尝试——单击几次 “Add” 按钮以生成一些随机的学生,您应该看到他们滑入我们列表的某个位置。...这是该项目概述的最后一部分,因此,请将您的代码重设为初始状态,并确保您从我们的数据模型中删除了Student实体——我们不再需要它。

    11.8K30

    优化 React APP 的 10 种方法

    在文本框中输入2并Click Me连续单击按钮,我们将看到ReactComponent将被重新渲染一次,并且永远不会被渲染。 它将上一个道具和状态对象的字段与下一个道具和状态对象的字段进行浅层比较。...10. shouldComponentUpdate() React应用程序由组件组成,从根组件(通常是App.js中的App)到扩展分支。...它在状态对象中具有数据。如果我们在输入文本框中输入一个值并按下Click Me按钮,则将呈现输入中的值。...现在,如果我们输入2并单击按钮,则将渲染组件,应该渲染该组件,因为先前的状态是这样的: state = { data: null } 下一个状态对象是这样的: state = { data: 2 } 因为...如果再次单击该按钮,我们将有另一个重新渲染,不是这样,因为前一个状态对象和下一个状态对象将具有相同的data值,但是由于setState新状态对象的创建,React将看到差异状态对象引用和触发器重新呈现

    33.9K20

    将模型添加到场景中 - 在您的环境中显示3D内容

    在最后几节中,我们能够检测到一个平面并显示一个焦点方块,以帮助我们为模型指定一个位置。我们也熟悉了热门测试和世界变换。现在,我们拥有显示虚拟对象所需的所有工具。...在本教程中,我们将学习如何检索模型并使用按钮的触发器将其呈现在场景中。一旦显示,我们将隐藏焦点方块。...为了能够正确添加我们的按钮,我们必须删除当前的 ARSCNView并首先从对象库添加UIView作为底层。接下来,选择相同的ARKit SceneKit View并将其放回UIView之上。...添加按钮 我们想在视图中添加一个按钮,用作在场景中添加模型的触发器。从对象库中,将UIButton拖动到场景视图的顶部。在“ 属性”检查器中,删除“ 按钮”标题并将图像设置为“ 按钮/添加”。...在ViewController.swift中,将一个新的类变量声明为一个节点数组,我们将其初始化为空。

    5.5K20

    如何在 WordPress 中创建联系表格?

    在搜索框中搜索 Ninja forms。你可以选择任何联系人插件。 单击安装,然后在搜索到的插件上激活。 最后,插件已安装。 新选项将在你的仪表板上显示为 Ninja Forms。...因此,要创建表单,请单击仪表板上的 Ninja Forms 选项。 你将在 Ninja 表单中看到默认表单。 通过单击默认表单的设置选项删除默认联系表单。 通过单击“添加新”按钮创建一个新表单。...从以下给定选项中选择联系我们选项:空白表格、联系我们、报价请求、活动注册。 当你单击它时,你的表单将被创建。 将创建一个简单的联系表单,其中包含名称、电子邮件、消息和提交按钮等字段。...要添加表单,请单击标题下方的添加表单选项。 弹出窗口将出现并选择你在 Ninja Form 中创建的表单。 然后单击“插入”,表单将插入到你的页面中。 点击发布按钮。...⭐️ 好书推荐 《Unity手机游戏开发:从搭建到发布上线全流程实战》 【内容简介】 本书将以一款开放世界类游戏的实践过程为主线,为读者呈现从零开始上线一款游戏的实践路线、游戏引擎Unity的开发模式

    2.9K21

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

    3.单击该窗体将其激活。然后,在工具箱中,单击“命令按钮”图标。 4.通过在窗体中拖动将按钮放置在所需位置。...6.再次单击该窗体,然后添加另一个命令按钮,将其Name属性更改为cmdClose并将其Caption属性更改为Close。...下一步也是最后一步,就是将代码添加到工程中,从窗体中显示和检索数据。 1.在“工程”窗口中,双击代码模块的名称以打开其编辑窗口。 2.选择“插入➪过程”以显示“添加过程”对话框。...如果单击“Move”按钮,则该窗体将移至屏幕的右上角。单击文本框将其激活,在文本框中输入一些文本,然后单击“Close”按钮。...该程序将显示一个带有你输入的文本的消息框,显示VBA代码如何从用户窗体中检索数据。 这是一个简单的演示。

    11.1K30

    如何使用 HTML、CSS 和 Vanilla JavaScript 以及本地存储创建待办事项应用程序

    每个任务将包含以下元素: 用于将任务标记为完成的单选按钮 用于显示任务的 span 元素 一个编辑按钮和一个删除按钮 使用 CSS 设计样式 我们将从主体样式开始,以确保所有元素水平居中: body {...由于所有删除按钮都具有相同的类,因此我们使用该querySelectorAll属性来选择所有按钮。...liElement然后我们从 DOM 中删除。 最后,我们获取 li 元素的 data 属性值并将其存储在名为 的变量中taskId。...在这个函数中,我们想要执行与删除按钮相同的步骤:即: 获取所有编辑按钮 使用forEach()方法迭代并获取最接近的li元素 获取 data-id 属性 allTasks使用 id 在数组中查找任务...将删除线 CSS 类添加到当前 li 元素的范围 使用该findIndex()方法从数组中获取当前任务的索引allTasks,然后将按钮的状态更新为选中。

    14110

    分析 React 组件的渲染性能

    交互跟踪API 如果我们可以追踪交互行为(例如单击UI)来回答比如 “单击此按钮需要多长时间才能更新DOM?” 之类的问题,那就太强大了。...感谢 Brian Vaughn, React 通过新的调度器包中的交互跟踪API对交互跟踪提供了实验支持。这里有更详细的记录。 交互带有一个注释(例如“单击添加到购物车按钮”)和一个时间戳。...还应该为交互提供一个回调函数,你可以在其中执行与交互相关的工作。 在电影APP中,有一个 “将电影添加到队列” 按钮(+)。单击此交互将电影添加到你的观看队列: ?...我们可以通过单击按钮来查看所有由此产生的 JavaScript 函数调用: ?...注意:React从他们的开发包中删除了 User Timing API ,取而代之的是 React Profiler,它提供了更准确的计时。他们可能会在未来的3级浏览器中重新添加它。

    3.6K10

    如何在 React 中点击显示或隐藏另一个组件?

    React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。...然后,我们在组件的返回值中渲染一个按钮和一个条件渲染的 div 元素。当用户单击按钮时,onClick 事件处理函数会调用 setIsVisible 函数,并将 !...使用事件处理机制响应用户交互React 组件可以用 onClick 事件处理函数来响应用户的单击事件。当用户单击按钮时,onClick 事件处理函数被触发,并执行一些逻辑代码。...当用户单击菜单按钮时,菜单应该出现,然后当用户单击菜单外部时,菜单应该消失。下面是一个示例,展示如何使用 React 和事件处理函数来实现菜单的显示和隐藏。...如果用户单击的元素不在模态对话框中,则将可见性设置为 false,模态对话框将被隐藏。否则,模态对话框保持可见。我们还添加了一个关闭按钮,用于关闭模态对话框。

    5.1K10

    邮件狂欢:Next.js和Resend SDK的电子邮件魔法

    下一步是按照以下步骤创建 API 密钥:导航至仪表板左侧的API 密钥部分。单击页面右侧的“创建 API 密钥”按钮。将出现一个包含表单的模式窗口。...为API 密钥名称选择一个名称,然后单击“添加”按钮。单击“添加”按钮后,将为您生成 API 密钥。您稍后将使用此 API 密钥,因此请记下它。验证发送电子邮件的域必须验证将用于发送电子邮件的域。...在仪表板的左侧,选择域并单击添加域按钮:出现一个新页面。通过在输入字段中输入域来添加域。然后单击“添加”按钮。现在您已添加域,下一步是添加域名系统 (DNS) 记录。...添加您从重新发送仪表板复制的所有 DNS 记录。然后单击“添加”按钮。接下来,导航回重新发送仪表板并单击验证 DNS 记录按钮。之后,您的仪表板状态将从“未开始”更改为“待处理”。...该POST函数是一个异步函数,用于处理传入的 POST 请求。、和变量是从解析的请求正文中提取的name。emailmessage现在,导航到项目的主页并在表单字段中输入一些数据。点击“预约”按钮。

    2K00
    领券