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

React 使用ref属性调用子组件方法(也可以适用于父子传参)

注意:①需使用hooks函数组件        ②使用了antDesign组件库(可不用)

如何使用

父组件代码

import React, { useState, useRef, useEffect } from 'react';
import { Button } from 'antd';
import Child from './components/child';export default () => {const childRef = useRef();//使用ref调用子组件的方法const handleOpen = () => {childRef.current.showModal('Hello word');};return (<div><Button type="primary" onClick={handleOpen}>点我</Button><Child ref={childRef} /></div>);
};

子组件代码

import React, { useImperativeHandle, forwardRef, useState, useRef, useEffect } from 'react';
import { Modal } from 'antd';const ChildComponent = forwardRef((props, ref) => {const [isModalOpen, setIsModalOpen] = useState(false);const [data, setData] = useState('');//弹框打开const showModal = async (data) => {setIsModalOpen(true);setData(data);};//弹框确定const handleOk = async () => {setIsModalOpen(false);};//弹框取消const handleCancel = () => {setIsModalOpen(false);};// 通过第二个参数ref来控制暴露哪些方法useImperativeHandle(ref, () => ({showModal,}));return (<div><Modal title="子组件" width={800} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}><div>{data}</div></Modal></div>);
});export default ChildComponent;

注:本人前端小白 ,如有不对的地方还请多多指教

相关文章:

React 使用ref属性调用子组件方法(也可以适用于父子传参)

注意&#xff1a;①需使用hooks函数组件 ②使用了antDesign组件库&#xff08;可不用&#xff09; 如何使用 父组件代码 import React, { useState, useRef, useEffect } from react; import { Button } from antd; import Child from ./components/child;export defau…...

Linux CentOS java JDK17

1. 下载 cd /usr/local/ wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 2. 解压 tar -zxf jdk-17_linux-x64_bin.tar.gz 3.配置环境变量 vim /etc/profile // 在末尾处添加 export JAVA_HOME/usr/local/jdk-17.0.12 #你安装jdk的路径&…...

迭代与递归

算法中会经常遇见重复执行某个任务&#xff0c;那么如何实现呢&#xff0c;本文将详细介绍两种实现方式&#xff0c;迭代与递归。 本文基于 Java 语言。 一、迭代 迭代&#xff08;iteration&#xff09;&#xff0c;就是说程序会在一定条件下重复执行某段代码&#xff0c;直…...

wo是如何克服编程学习中的挫折感的?

你是如何克服编程学习中的挫折感的&#xff1f; 编程学习之路上&#xff0c;挫折感就像一道道难以逾越的高墙&#xff0c;让许多人望而却步。然而&#xff0c;真正的编程高手都曾在这条路上跌倒过、迷茫过&#xff0c;却最终找到了突破的方法。你是如何在Bug的迷宫中找到出口的…...

vue3基础ref,reactive,toRef ,toRefs 使用和理解

文章目录 一. ref基本用法在模板中使用ref 与 reactive 的区别使用场景 二. reactive基本用法在模板中使用reactive 与 ref 的区别使用场景性能优化 三. toRef基本用法示例在组件中的应用主要用途对比 ref 和 toRef 四. toRefs基本用法示例在组件中的应用主要用途对比 ref 和 t…...

【Python机器学习】NLP的部分实际应用

自然语言处理在现实中非常多的应用&#xff0c;下表是其中的一些例子&#xff1a; 应用示例1示例2示例3搜索web文档自动补全编辑拼写语法风格对话聊天机器人助手行程安排写作索引用语索引目录电子邮件垃圾邮件过滤分类优先级排序文本挖掘摘要知识提取医学诊断法律法律断案先例…...

LLM 压缩之二: ShortGPT

0. 资源链接 论文: https://arxiv.org/pdf/2403.03853 项目代码: 待开源 1. 背景动机 现有的大语言模型 LLM 推理存在以下问题&#xff1a; LLM 模型因为 scale law 极大的提高模型的预测能力&#xff0c;但是同样带来较大的推理延时&#xff1b;对于 LLM 应用部署带来较大…...

EmguCV学习笔记 VB.Net 5.2 仿射变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…...

Fink初识

文章目录 1. Flink核心组件2. Flink核心概念3. 执行应用程序的三种模式3.1 session mode3.2 per-job mode3.3 application mode 4. Job Manager4.1 Resource Manager4.2 Dispatcher4.3 Job Master 5. Watermark6. State7.时间属性7.1 处理时间 processing time7.2 事件时间 Eve…...

PyTorch的torchvision内置数据集使用,transform+pytorch联合使用

一、PyTorch的torchvision内置数据集介绍 我们前面的文章里谈到的数据集是我们自己找的一些自定义数据集。那么在Pytorch中存在2种数据集&#xff08;Dataset&#xff09;&#xff0c;即内置数据集&#xff08;Built-in dataset&#xff09;和自定义数据集&#xff08;Custom d…...

MT1619 (A/B/C对应18W/22W/25W)如何避免温度高、电磁干扰

MT1619系列是一款开关电源芯片&#xff0c;其内部集成了一颗高集成度、高性能的电流模式 PWM 控制器和一颗功率 MOSFET。MT1619 具有恒功率功能&#xff0c;特别适用于 PD 充电器、电源适配器等中小功率的开关电源设备。极低的启动电流与工作电流、以及轻载或者无负载情况下的 …...

Hadoop 的基本 shell 命令

Hadoop 的基本 shell 命令主要用于与 Hadoop 分布式文件系统&#xff08;HDFS&#xff09;和 MapReduce 进行交互。以下是一些常用的 Hadoop shell 命令&#xff1a; 一、 HDFS 命令 1. 查看 HDFS 状态 hdfs dfsadmin -report: 显示 HDFS 的健康状态和容量信息。 2. 文件系统操…...

HCIP-交换实验

根据实验要求&#xff0c;完成实验内容&#xff1a; 实验拓扑图如下所示 &#xff1a; 搭建拓补图&#xff1a; LSW1&#xff0c;LSW2&#xff1a; [LS1]interface Eth-Trunk 0 [LS1-Eth-Trunk0]q [LS1]interface g0/0/3 [LS1-GigabitEthernet0/0/3]eth-trunk 0 [LS1]interf…...

Windows下线程的创建与使用(win32-API)

一、前言 线程是比进程更轻量级的执行单元&#xff0c;允许在一个进程中并发执行多个控制流。每一个线程都有自己的程序计数器、寄存器集和栈空间&#xff0c;但它们共享所属进程的全局数据和资源。这种共享内存模型使线程间的通信比进程间通信更为高效&#xff0c;同时也带来…...

华为OD机试(C卷,100分)- 游戏分组

题目描述 部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分为两队,每队 5 人。 每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把 10 名参赛者分为示例尽量相近的两队。 一队的实力可以表示为这一队 5 名队员的评分总和。 现在给你…...

centos7.9系统按cloudpods

1. 简介&#xff1a; Cloudpods 是一款简单、可靠的企业IaaS资源管理软件。帮助未云化企业全面云化IDC物理资源&#xff0c;提升企业IT管理效率。 Cloudpods 帮助客户在一个地方管理所有云计算资源。统一管理异构IT基础设施资源&#xff0c;极大简化多云架构复杂度和难度&…...

android apk 加固后的地图加载异常及重新签名

1.首先根据需求将打包生成后的APK进行加固&#xff0c;可以使用360、阿里、腾讯加固等。 2.加固后的APK无法直接安装&#xff0c;需要重新进行签名。 3.首先找到sdk的位置&#xff0c;进入build-tools目录。 4.根据gradle文件选择版本目录。 5.将加固后的APK放至该目录下。在…...

手把手搭建私人在线备份系统

对于打工人来说&#xff0c;什么文件最重要&#xff1f; 那就是——打不开的文件最重要&#xff01; 那么&#xff0c;如何才能避免这样的事情发生呢&#xff1f;这时候就需要使出我们的大杀器——文件备份&#xff01; 文件备份怎么搞才最合适呢&#xff1f; 是使用移动硬盘&a…...

数据分析实操案例分享:如何对人事数据进行BI分析?

在数据驱动时代&#xff0c;数据分析已经成为企业和个人获取竞争优势的关键技能。特别是在人力资源管理领域&#xff0c;数据分析的应用正变得越来越重要。通过对在职和离职数据的深入分析&#xff0c;企业不仅能够洞察员工的动态&#xff0c;揭示员工流动的模式、预测人才需求…...

谷粒商城实战笔记-228-商城业务-认证服务-自定义SpringSession完成子域session共享

文章目录 一&#xff0c;228-商城业务-认证服务-自定义SpringSession完成子域session共享1. cookieSerializer()2. springSessionDefaultRedisSerializer() 一&#xff0c;228-商城业务-认证服务-自定义SpringSession完成子域session共享 前面弄清楚了分布式服务中的两个问题&…...

Elasticsearch核心

一、几个核心概念 1、节点&#xff1a;一个节点&#xff08;Node&#xff09;就是一个es进程&#xff0c;一个服务器可以部署多个节点 查询节点以及节点信息&#xff1a; http://127.0.0.1:9200/_cat/nodes?v 2、角色&#xff0c;是指节点在集群中担任什么角色&#xff1a…...

Python.NET:打开Python与.NET世界互通的大门

Python.NET 是一个强大的工具&#xff0c;它为 Python 程序员提供了一种与 .NET 公共语言运行时 (CLR) 无缝集成的途径。它就像一座桥梁&#xff0c;将 Python 的灵活性与 .NET 的强大功能连接起来&#xff0c;为开发者提供了前所未有的自由和可能性。 1. Python.NET 的核心价值…...

uniapp - plugins的组件配置使用

点击进入到uniapp中mp-weixin的配置中 点击进入小程序的plugin的配置 在项目中&#xff0c;我们可引用插件的使用&#xff0c;例如一些快递100&#xff0c;点餐插件的业务引入 添加插件 在使用插件前&#xff0c;首先要在小程序管理后台的“设置-第三方服务-插件管理”中添加…...

Microsoft Edge WebView2 截图

使用工具可以保存可见区域 CallDevToolsProtocolMethodAsync("Page.captureScreenshot", Params) always returns only visible part of html page including scrollbars. I tried all possible combinations of "fromSurface" and "captureBeyondVi…...

[word] 复杂文本如何仅全选word中的表格 (简单跟做即可)

问题描述 在word文档中&#xff0c;有各种形式的文本&#xff0c;有纯文本&#xff0c;有表格&#xff0c;有图片或者更多其它形式参杂在一起&#xff0c;本篇记录解决如何只全选中文档中的所有表格形式的部分&#xff0c;从而方便对表格进行批量修改和操作 环境说明 word版…...

Aop切面编程

学习视频 一、定义模型&#xff1a;订单保存模型&#xff0c;订单更新模型&#xff0c;业务层&#xff0c;日志模型 订单保存模型 /*** author durunwu* date 2024-08-20-21:04*/ Data public class SaveOrder {private Long id; }订单更新模型 /*** author durunwu* date …...

目标检测 | yolov9 原理和介绍

相关系列&#xff1a; 目标检测 | yolov1 原理和介绍 目标检测 | yolov2/yolo9000 原理和介绍 目标检测 | yolov3 原理和介绍 目标检测 | yolov4 原理和介绍 目标检测 | yolov5 原理和介绍 目标检测 | yolov6 原理和介绍 目标检测 | yolov7 原理和介绍 目标检测 | yolov8 原理和…...

如何在不格式化的情况下解锁Android智能手机密码

如果您忘记了密码&#xff0c;您的 Android 移动设备会将您锁定。发生这种情况时&#xff0c;通常可以通过执行恢复出厂设置来重新获得对设备的访问权限。可悲的是&#xff0c;这将导致所有数据的丢失。下面列出了在不丢失任何个人数据的情况下解锁锁定的Android 手机的有效方法…...

ts语法、nvm的使用以及github访问速度

TS基础语法 let aa:string "123" let bb:number 123 let cc:boolean true let dd:undefined undefined let ee:null null let list:Array<string> ["1", 2, 3] let list2:string[] ["1", 2, 3]interface Ibj {name: string,age: n…...

缓存实现方式

缓存是一个常见的话题&#xff0c;因为它对于提高应用程序性能至关重要。缓存是一种存储数据的临时地方&#xff0c;以便快速访问数据&#xff0c;减少对原始数据源&#xff08;如数据库或文件系统&#xff09;的访问次数&#xff0c;从而提高应用程序的响应速度和吞吐量。 Jav…...