首页
学习
活动
专区
工具
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会被更新为当前按钮的索引。

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

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

相关·内容

CleanMyMac免费mac2023最新版清理功能介绍

CleanMyMac免费mac下载版是一款简单实用的PC清洁管理工具,电脑刚装完系统的时候运行速度超级快,随着时间的推移,你会发现越来越慢,经常会反应卡顿,越来越多的垃圾文件占用了你的磁盘空间,各种过时的日志,未使用的语言和移动到回收站的文件都拖慢着你的电脑,使用CleanMyMac可完美解决这些问题,CleanMyMac快速深度扫描计算机的每一个角落并进行垃圾文件清理将碎片硬盘驱动器,垃圾文件和注册表问题降低系统性能后,加快电脑的运行及提高性能,将计算机恢复到最佳状态。并且软件也完美简化了软件卸载的过程,本次小编带来的是最新版,可设置成简体中文版,使用更加方便!

01
  • vc60修改快捷键-MSDEV.EXE 版本

    使用VS6.0(VC++ or other)打开或添加项目时出现[MSDEV.EXE-应用程序错误""指令引用的""内存,该内存不能为"read";""指令引用的""内存,该内存不能为"read" ],这个可能是VS6.0和OFFICE 2007有冲突的缘故,下面是解决办法:首先去下载一个(exe 下载后解压缩),下载过来是一个C++原始文件,需要通过VC编译一下产生一个 .dll将这个插件复制到X:\ Files\ Visual Studio\Common\AddIns重新打开VC6,Tools->->Add-ins and Macro Files,选中 Studio Add-in即可。此时打开VC6会有一个浮动工具栏(A O),点击A就是添加文件到工程,点击O就是打开文件。是不是很怪啊,竟然做了一个插件进来,并没有对原先的冲突进行改进。VC6.0和Visio两个软件有冲突,把Visio卸载掉即可,若卸载无效,可按下述方法添加一个宏程序补救。

    02

    vc60修改快捷键-MSDEV.EXE-应用程序错误解决办法

    使用VS6.0(VC++ or other)打开或添加项目时出现[MSDEV.EXE-应用程序错误""指令引用的""内存,该内存不能为"read";""指令引用的""内存,该内存不能为"read" ],这个可能是VS6.0和OFFICE 2007有冲突的缘故,下面是解决办法:首先去下载一个(exe 下载后解压缩),下载过来是一个C++原始文件vc60修改快捷键,需要通过VC编译一下产生一个 .dll将这个插件复制到X:\ Files\ Visual Studio\Common\AddIns重新打开VC6,Tools->->Add-ins and Macro Files,选中 Studio Add-in即可。此时打开VC6会有一个浮动工具栏(A O),点击A就是添加文件到工程,点击O就是打开文件。是不是很怪啊vc60修改快捷键,竟然做了一个插件进来,并没有对原先的冲突进行改进。VC6.0和Visio两个软件有冲突,把Visio卸载掉即可,若卸载无效,可按下述方法添加一个宏程序补救。

    02

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

    在最基本的形式和形状中,“计算机视觉”是一个术语,用于标识用于使数字设备具有视觉感觉的所有方法和算法。 这意味着什么? 好吧,这就是听起来的确切含义。 理想情况下,计算机应该能够通过标准相机(或与此相关的任何其他类型的相机)的镜头看到世界,并且通过应用各种计算机视觉算法,它们应该能够检测甚至识别并计数人脸。 图像中的对象,检测视频馈送中的运动,然后执行更多操作,这些操作乍一看只能是人类的期望。 因此,要了解计算机视觉的真正含义,最好知道计算机视觉旨在开发方法以实现所提到的理想,使数字设备具有查看和理解周围环境的能力。 值得注意的是,大多数时间计算机视觉和图像处理可以互换使用(尽管对这个主题的历史研究可能证明应该相反)。 但是,尽管如此,在整本书中,我们仍将使用“计算机视觉”一词,因为它是当今计算机科学界中更为流行和广泛使用的术语,并且因为正如我们将在本章稍后看到的那样,“图像处理”是 OpenCV 库的模块,我们还将在本章的后续页面中介绍,并且还将在其完整的一章中介绍它。

    02

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

    最近我们公司接到一个客户的需求,要求为正在开发的项目加个功能。项目的前端使用的是React,客户想添加具备Excel 导入/导出功能的电子表格模块。 经过几个小时的原型构建后,技术团队确认所有客户需求文档中描述的功能都已经实现了,并且原型可以在截止日期前做好演示准备。但是,在跟产品组再次讨论客户需求时,我们发现之前对有关电子表格的部分理解可能存在偏差。 客户的具体需求点仅仅提到支持双击填报、具备边框设置、背景色设置和删除行列等功能,但这部分需求描述不是很明确,而且最后提到“像Excel的类似体验”,我们之前忽略了这句话背后的信息量。经过与客户的业务需求方的直接沟通,可以确认终端用户就是想直接在网页端操作Excel,并且直接把编辑完成的表格以Excel的格式下载到本地。

    02
    领券