antd table的单击事件和双击事件冲突

这篇具有很好参考价值的文章主要介绍了antd table的单击事件和双击事件冲突。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:当table上同时有onClick和onDoubleClick时,双击会一直触发单击事件。

解决方法:使用延迟定时器-setTimeout

                  单击事件延迟执行,如果检测到连续点击,则是双击事件,不再执行单击事件。

代码实现:文章来源地址https://www.toymoban.com/news/detail-822370.html

import React, { useState } from "react";
import { Table } from "antd";
import { ColumnsType } from "antd/lib/table";

interface DataType {
  key: string;
  name: string;
  age: number;
  address: string;
}

const MyTable: React.FC = () => {
  const [clickTimeout, setClickTimeout] = useState<NodeJS.Timeout | null>(null);

  const handleSingleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>, record: T) => {
    if (clickTimeout) {
      clearTimeout(clickTimeout);
      setClickTimeout(null);
      console.log("Double click");
    } else {
      setClickTimeout(
        setTimeout(() => {
          console.log("Single Click");
          // 在这里执行单击事件的处理逻辑
          setClickTimeout(null);
        }, 300)
      );
    }
  };

  const handleDoubleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>, record: T) => {
    clearTimeout(clickTimeout as NodeJS.Timeout);
    setClickTimeout(null);
    console.log("Double click");
    // 在这里执行双击事件的处理逻辑
  };

  const data: DataType[] = [
    {
      key: "1",
      name: "xiaohong",
      age: 18,
      address: "xxxxxx",
    },
    {
      key: "2",
      name: "xiaoming",
      age: 10,
      address: "xxxxxxx",
    },
  ];

  const columns: ColumnsType<DataType> = [ 
    {
      title: "Name",
      dataIndex: "name",
      key: "name",
    },
    {
      title: "Age",
      dataIndex: "age",
      key: "age",
    },
    {
      title: "Address",
      dataIndex: "address",
      key: "address",
    },
  ];

  return (
    <Table<DataType>
      dataSource={data}
      columns={columns}
      onRow={(record) => {
        return {
          onClick: (e) => handleSingleClick(e, record);,
          onDoubleClick: (e) => handleDoubleClick(e, record),
        };
      }}
    />
  );
};

export default MyTable;

到了这里,关于antd table的单击事件和双击事件冲突的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity知识点详解】Button点击事件拓展,单击、双击、长按实现

    Button拓展         今天来聊一下关于Button的事件拓展,这里只是拿Button来举例,Unity中其他的UI组件如Toggle、Slider等都也适用。         我们知道在Button中我们可以通过onClick的方式来添加点击事件,但在游戏开发过程中我们往往对Button有着更多的功能需求,比如说双击、

    2024年04月10日
    浏览(50)
  • QT 实现tablewidget整行的上下移动和双击编辑

    一、效果展示 二、实现方法 1、先对tablewidget设置 2、实现行的上下移动 主要实现方式是通过交换两行的数据来实现的 下面这两句主要实现选择行跟随移动的行

    2024年02月11日
    浏览(48)
  • vue3 antd项目实战——table表格的自定义筛选【纯前端filters过滤、自定义筛选table表格数据】

    文章内容 文章链接 vue3 antd table 表格的基础搭建 https://blog.csdn.net/XSL_HR/article/details/128072745 ant design vue 组件库的引入与使用 https://blog.csdn.net/XSL_HR/article/details/127396384 在 后台管理系统 中,我们需要 对大量的数据进行展示、处理和操作 ,table表格也因此无处不在。而 ant design

    2024年01月25日
    浏览(54)
  • 单片机_按键——单击,双击,长按

    调用

    2024年02月16日
    浏览(50)
  • QPushButton按钮控件常用信号,双击,单击等。

    想要了解QT中的QPushButoon类必须先了解QT的大致继承关系,这样我们才能更好的实现或者了解QPushButton按钮控件,大致继承关系如下: 我们可以看到QpushButton继承自—QAbstractButton继承自----QWidget。 这样我们就可以查找我们想要实现的功能相关信息。 单击信号:checked。 虽然我们

    2024年02月16日
    浏览(44)
  • 按键状态机(实现单击,长按,双击)的模块分享

    目录 一、相关说明 二、分析 三、模块代码 三、代码讲解 四、作者的话         1.需要的资源:一个定时器,一个按键。         2.相关设置:利用定时器计时中断,10ms进行一次按键扫描。         3.使用说明:定时器中断的优先级要设置高一点,相关的宏定义可以

    2024年02月07日
    浏览(66)
  • 【FAQ】关于JavaScript版本的华为地图服务Map的点击事件与Marker的点击事件存在冲突的解决方案

    创建地图对象,并添加marker标记,对map和marker均添加了点击事件; body script function initMap() { // 创建地图对象 const map = new HWMapJsSDK.HWMap(document.getElementById(\\\'map\\\'), { center: { lat: 39.36322, lng: 116.3214 }, zoom: 8, }); map.on(\\\'click\\\', handleMapClick); ``` 经下方的Gif图可看出,在点击marker标记时不会

    2023年04月26日
    浏览(50)
  • STM32独立按键实现单击双击长按功能

    目录 前言 一、按键功能定义 二、使用步骤 1.按键初始化 2.按键扫描函数(重点) 总结 在使用STM32或其他单片机开发项目时,经常需要用到独立按键进行控制。 通常一个独立按键需要使用一个IO口,如果项目需要按键实现多个功能,往往需要使用到多个按键,需要使用到多个

    2023年04月17日
    浏览(46)
  • Unity InputSystem 实现同一按键单击、双击、长按执行不同逻辑

    最近学习了一下Unity InputSystem。该系统可用于实现、管理复杂的操作逻辑,上限很高。但由于它有一定的学习成本,导致一些和我一样的小白一入门时不得要领。之前卡住我的一个需求就是通过InputSystem 实现同一按键单击、双击、长按执行不同逻辑。例如点击单位执行攻击、

    2024年02月05日
    浏览(55)
  • qt学习:QListWidget控件+自定义条目项+双击删除+单击获取

    目录 图片 头函数 接口  显示案例 方法1 方法2 方法3   方法4  自定义 方法5  在方法4上实现 新建一个条目项类  itemwidget界面,配置ui界面,四个label, 实现listWidget的双击按钮事件 实现listWidget的单击按钮事件

    2024年01月25日
    浏览(126)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包