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

React使用useImperativeHandle实现父组件触发子组件事件

相关知识:

  1. useImperativeHandle
    在这里插入图片描述
  2. forwardRef
    在这里插入图片描述

相关代码:

获取子组件实例,由于这是函数组件,没有this因此不能整体获取,我们可以通过useImperativeHandle获取想要的变量或者方法。

  1. 父组件
    import React, { useRef } from "react";
    import Child from "./child";
    function Parent(props) {const childRef = useRef();const changeChildText = () => {childRef.current.changeText();};return (<div id="parent" style={{ border: "1px solid #ccc", padding: 10 }}><h1>parent page</h1><button onClick={changeChildText}>通过父组件实现子组件点击事件</button><Child ref={childRef} /></div>);
    }
    export default Parent;
    

    解释:父组件中通过属性ref,想要获取通过childRef这个ref存放子组件实例
    子组件接收这个ref,然后给它身上绑定一些想要属性(也就是useImperativeHandle的第二个参数返回值)

  2. 子组件
    import React, { forwardRef, useImperativeHandle, useState } from "react";export default forwardRef((props, ref) => {const [text, setText] = useState("child page");useImperativeHandle(ref, () => {return {changeText,};});const changeText = () => {setText((prev) => {return prev + "★";});};return (<div id="child" style={{ background: "#f1f1f1", padding: 20 }}><h2>{text} <button onClick={changeText}>改变文本</button></h2></div>);
    });
    

请添加图片描述

相关文章:

React使用useImperativeHandle实现父组件触发子组件事件

相关知识&#xff1a; useImperativeHandle forwardRef 相关代码&#xff1a; 获取子组件实例&#xff0c;由于这是函数组件&#xff0c;没有this因此不能整体获取&#xff0c;我们可以通过useImperativeHandle获取想要的变量或者方法。 父组件import React, { useRef } fro…...

【PowerQuery】Excel的PowerQuery的复制

在Excel中构建符合要求的PowerQuery连接之后&#xff0c;所有的PowerQuery 连接已经顺利的保存在Excel 工作簿当中&#xff0c;但是如何去查看已经保存的PowerQuery连接呢&#xff1f;图6.3 显示了查看PowerQuery连接。 Excel界面->数据页签->查询与连接 如果你的Power…...

这个制作企业期刊的神器我怎么没早点发现

和大家分享个好消息&#xff0c;发现这款制作企业期刊的神器特好用 有点后悔早些没发现它&#xff0c;没用过的可以试试&#xff0c;FLBOOK在线制作电子杂志平台 下面教大家一些如何使用FLBOOK的过程 1.打开FLBOOK平台&#xff0c;点击登录与注册 2.点击开始制作&#xff0c;…...

核心实验18_ospf高级_ENSP

项目场景&#xff1a; 核心实验18_ospf高级_ENSP 多区域虚链路 实搭拓扑图&#xff1a; 具体操作&#xff1a; R1: [R1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]net 1.1.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]net 10.1.12.0 0.0.0.255 [R1-os…...

【python零基础入门学习】python基础篇之系统模块调用shell命令执行(四)

本站以分享各种运维经验和运维所需要的技能为主 《python》&#xff1a;python零基础入门学习 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…...

用python实现基本数据结构【01/4】

说明 如果需要用到这些知识却没有掌握&#xff0c;则会让人感到沮丧&#xff0c;也可能导致面试被拒。无论是花几天时间“突击”&#xff0c;还是利用零碎的时间持续学习&#xff0c;在数据结构上下点功夫都是值得的。那么Python 中有哪些数据结构呢&#xff1f;列表、字典、集…...

Ubuntu22.04 install Kafka

kafka quickstart install kafka...

实现JSONP请求

同源策略 JavaScript 的浏览器都会使用这个策略。所谓同源是指&#xff0c;域名&#xff0c;协议&#xff0c;端口相同。 而所有非同源的请求&#xff08;即 域名&#xff0c;协议&#xff0c;端口 其中一种或多种不相同&#xff09;&#xff0c;都会被作为跨域请求。实际上请求…...

如何将安防视频监控系统/视频云存储EasyCVR平台推流到公网直播间?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…...

使用内网负载机(Linux)执行Jmeter性能测试

一、背景 ​ 在我们工作中有时候会需要使用客户提供的内网负载机进行性能测试&#xff0c;一般在什么情况下我们需要要求客户提供内网负载机进行性能测试呢&#xff1f; 遇到公网环境下性能测试达到了带宽瓶颈。那么这时&#xff0c;我们就需要考虑在内网环境负载机下来执行我们…...

Web自动化测试进阶 —— Selenium模拟鼠标操作

鼠标操作事件 在实际的web产品测试中&#xff0c;对于鼠标的操作&#xff0c;不单单只有click()&#xff0c;有时候还要用到右击、双击、拖动等操作&#xff0c;这些操作包含在ActionChains类中。 ActionChains类中鼠标操作常用方法&#xff1a; 首先导入ActionChains类&…...

Python之函数

函数是什么&#xff1f; 函数是对程序逻辑进行结构化或过程化的一种编程方法&#xff0c;将整块代码巧妙地隔离成易于管理的小块。把重复代码放到函数中而不是进行大量的拷贝&#xff0c;这样既能节省空间&#xff0c;也有助于保持一致性&#xff1b;通常函数都是用于实现某一种…...

泛型工具类型和操作符

前言 TypeScript 内置了一些常用的工具类型。 PartialRequiredOmitPick.... 操作符 typeof typeof 操作符可以用来获取一个变量声明或对象的类型 const p {x:2,y:cm} let g:typeof p {x:3,y:ff} 这里g需要满足&#xff1a; 有x属性且值是number类型 有y属性且值是string类型…...

idea中启动maven项目报错-java: 程序包lombok.extern.slf4j不存在问题如何解决

1、 现象&#xff1a; 在springboot的maven项目启动时&#xff0c;报错&#xff1a; Error:(3, 27) java: 程序包lombok.extern.slf4j不存在 编译不报错&#xff0c;maven依赖也合适&#xff0c;项目就是无法启动 原因&#xff1a; 其实不是项目本身或者maven本身的问题&am…...

MyBatis-动态SQL

<if>标签 用于判断条件是否成立&#xff0c;使用test属性进行条件判断&#xff0c;如果条件为true&#xff0c;则拼接SQL <where>标签 where元素只会在子元素有内容的情况下插入where子句&#xff0c;而且会自动去除子句的开头的AND或OR <where><if tes…...

Swift学习内容精选(二)

Swift 类是构建代码所用的一种通用且灵活的构造体。 我们可以为类定义属性&#xff08;常量、变量&#xff09;和方法。 与其他编程语言所不同的是&#xff0c;Swift 并不要求你为自定义类去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类&#xff0c;系…...

类欧笔记存档

电子版&#xff1a;https://blog.csdn.net/zhangtingxiqwq/article/details/132718582...

电能计量远程抄表系统的分析及在物业的应用

安科瑞 华楠 摘 要&#xff1a;结合当前电力企业实际的发展概况&#xff0c;可知电力活动开展中对于性能可靠的电能计量及远程抄表依赖程度高&#xff0c;需要注重它们实际应用范围的扩大&#xff0c;满足电力企业长期稳定发展的实际需求。基于此&#xff0c;本文将对电能计量…...

计算机网络篇之端口

计算机网络篇之端口 文章目录 计算机网络篇之端口前言概括分类总结 前言 我们知道ip地址可以确定向哪台主机转发数据&#xff0c;但是数据要发给主机的哪个进程&#xff0c;这个时候端口就派上用场了 概括 计算机网络端口是用于区分不同应用程序或网络服务的逻辑地址&#x…...

GO语言篇之发布开源软件包

GO语言篇之发布开源软件包 文章目录 GO语言篇之发布开源软件包新建仓库拉取到本地初始化项目编写代码提交代码发布引用软件包 我们写GO语言程序的时候难免会引用第三方的软件包&#xff0c;那么你知道别人是怎么发布自己的软件包吗&#xff0c;别急&#xff0c;这篇博客教你怎么…...

从Windows命令行小白到Scoop社区贡献者:我的完整成长指南

从Windows命令行小白到Scoop社区贡献者&#xff1a;我的完整成长指南 【免费下载链接】Scoop A command-line installer for Windows. 项目地址: https://gitcode.com/gh_mirrors/sc/Scoop 想要在Windows系统上快速安装和管理软件&#xff1f;厌倦了繁琐的图形界面安装过…...

【PyCon 2024核心议题首发】:CPython 3.13 asyncio重构内幕——原生任务取消语义、零拷贝Socket API与异步GC优化前瞻

第一章&#xff1a;PyCon 2024与CPython 3.13异步演进全景图PyCon 2024于五月在匹兹堡圆满落幕&#xff0c;其核心议题之一正是CPython 3.13的异步能力跃迁。作为首个将async/await语义深度融入解释器底层的Python版本&#xff0c;3.13引入了原生协程调度优化、零拷贝内存视图支…...

DoL-Lyra整合包完整使用指南:5分钟掌握汉化版Degrees of Lewdity一键安装

DoL-Lyra整合包完整使用指南&#xff1a;5分钟掌握汉化版Degrees of Lewdity一键安装 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS DoL-Lyra整合包为Degrees of Lewdity玩家提供了一站式解决方案&…...

上周刚把三菱PLC+MCGS的电机测速课设收尾,趁着热乎劲把细节唠唠,顺便把踩过的坑也记一下,省得下次忘光

No.1235 基于三菱 PLC和MCGS组态电机测速系统控制设计这个项目说白了就是用三菱PLC算电机的转速&#xff0c;再用MCGS组态屏把转速实时显示出来&#xff0c;用到的东西挺基础&#xff1a;FX3U PLC、1000线增量式编码器、直流减速电机、MCGS组态屏&#xff0c;再加一根USB转RS48…...

OBS高级计时器:提升直播专业度的时间管理工具

OBS高级计时器&#xff1a;提升直播专业度的时间管理工具 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 在直播行业竞争日益激烈的今天&#xff0c;精准的时间控制是提升直播质量的关键因素之一。OBS高级计时器…...

告别Makefile!用Zig 0.10.0自带的构建系统搞定ARM裸机开发(附完整项目配置)

用Zig构建系统重塑ARM裸机开发&#xff1a;告别Makefile的终极指南 当你在凌晨三点盯着第47个Makefile规则调试链接器错误时&#xff0c;是否想过——嵌入式开发必须这么痛苦吗&#xff1f;Zig 0.10.0带来的不仅是一门新语言&#xff0c;更是一套彻底革新裸机开发工作流的构建系…...

FGF-21蛋白的代谢调控机制与临床转化前景

一、引言成纤维细胞生长因子21&#xff08;FGF-21&#xff09;是成纤维细胞生长因子家族中的一种内分泌代谢调节因子。自其被发现以来&#xff0c;该蛋白因其在糖脂代谢、能量稳态调控及胰岛素敏感性改善等方面的独特作用&#xff0c;逐渐成为代谢性疾病研究领域的前沿热点。与…...

【架构实战】架构师成长路线图

一、架构师的核心能力 架构师不是只会画图的技术人&#xff0c;而是能在技术、业务、团队之间找到平衡点的综合型人才。 技术深度 精通至少一个技术领域理解底层原理&#xff0c;不浮于表面持续跟踪新技术趋势 系统思维 全局视角看问题懂得权衡&#xff08;Trade-off&#xff0…...

符号回归的工程化实践:基于深度学习的物理定律自动发现与工业部署

1. 符号回归&#xff1a;当深度学习遇见物理定律发现 第一次接触符号回归时&#xff0c;我被它的"反套路"特性惊艳到了——大多数深度学习模型都在努力变得更复杂&#xff0c;而它却在追求用最简单的数学公式解释世界。三年前我在化工厂做反应釜监控项目时&#xff0…...

Vitis新手避坑:自定义IP编译报错?先检查这个Makefile路径!

Vitis新手避坑指南&#xff1a;自定义IP编译报错的核心排查思路 第一次在Vitis中集成自定义IP时遇到编译报错&#xff0c;那种挫败感我至今记忆犹新。明明硬件描述文件&#xff08;XSA&#xff09;已经正确生成&#xff0c;软件工程却莫名其妙地报出"xxx.h: No such file …...