双击事件怎么解决防止触发单击事件

ref + settimeout

为啥不能使用 state / 静态变量

state 就存在闭包

静态变量无效

handleSingleClick = () => {
    const timer = setTimeout(() => {
      if (!this.isDoubleClick) {
        console.log("Single click");
      }
      this.isDoubleClick = false;
      clearTimeout(timer);
      this.timerRef.current = null;
    }, 200);
    this.timerRef.current = timer;
  }

  handleDoubleClick = () => {
    this.isDoubleClick = true;
    const timer = this.timerRef.current;
    if (timer) {
      clearTimeout(timer);
      this.timerRef.current = null;
    }
    console.log("Double click");
  }
posted @   郭杰前端开发  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2022-08-25 js数组对象的遍历
## 希望内容对你有帮助,如果有错误请联系我 q: 1911509826,感谢支持
点击右上角即可分享
微信分享提示