当前位置: 首页 > news >正文

一些自定义hooks

文章目录

      • 1、点击框外隐藏弹窗hook

1、点击框外隐藏弹窗hook

**描述:**有一个需要自己封装弹窗的组件,实现点击弹窗框外时隐藏弹窗
代码:
import { useEffect } from “react”;

// 点击框外hooks
import { useEffect } from "react";const useClickOutOfBox = (ref: any, callback: Function) => {const handleClick = (event: MouseEvent) => {if (ref && ref.current && !ref.current.contains(event.target)) {callback(); // 在callBack中放隐藏弹窗的逻辑}};useEffect(() => {document.addEventListener("click", handleClick);return () => {document.removeEventListener("click", handleClick);};});
};export default useClickOutOfBox;
// 使用
import { useState, useEffect } from "react";
import { useClickOutOfBox } from "@/hooks/useClickOutOfBox";
... 
const [visible, setVisible] = useState(false);
const myRef = useRef(null);
myRef  && useClickOutOfBox(myRef, setVisible(false));
return (
...
{visible &&
<div ref={myRef}>
弹窗
</div>
...)
...
http://www.lryc.cn/news/139590.html

相关文章:

  • 基于Citespace、vosviewer、R语言的文献计量学可视化分析技术及全流程文献可视化SCI论文高效写作方法
  • lEC 61068-2-14_2023环境试验.第2-14部分:试验.试验N:温度变化, 最新版发布
  • CFDEM学习笔记
  • SpringBoot入门篇1 - 简介和工程创建
  • MyBatis-Plus updateById不更新null值
  • 用pytorch实现AlexNet
  • LeetCode560.和为k的子数组
  • echarts 的dataZoom滑块两端文字被遮挡
  • MongoDB基本使用
  • C++ 中的左值(Lvalues)和右值(Rvalues)
  • html流光按钮
  • HAProxy+nginx搭建负载均衡群集
  • logback-spring.xml 的配置及详解(直接复制粘贴可用)
  • C语言易错点整理
  • 60.每日一练:回文数(力扣)
  • 算法通关村第5关【青铜】| Hash和队列的特征
  • C++:函数
  • Linux网络编程:libevent事件通知库
  • java.lang.reflect.InvocationTargetException:null报未知异常
  • MySQL高级篇——MySQL架构篇1(Linux下MySQL8的安装与使用)
  • 解决 go mod tidy 加载模块超时
  • 金融市场中的机器学习;快手推出自研语言模型“快意”
  • 【面试刷题】——什么是深拷贝和浅拷贝?
  • 物联网(IoT)安全挑战与解决方案: 分析物联网设备面临的安全威胁,以及如何设计和管理安全的IoT生态系统
  • Ubuntu 22.04.3 LTS 维护更新发布
  • 平安健康,找到了医疗服务的价值密码
  • ❤ vue 使用原生组件
  • 4.12 TCP 连接,一端断电和进程崩溃有什么区别?
  • 十二、pikachu之URL重定向
  • 贝叶斯公式中的动词 命名技巧