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

react经验5:访问子组件内容

应用场景

父级需要调用子组件的某函数

实现步骤

案例:创建自定义按钮
button.tsx

import { Ref, forwardRef, useImperativeHandle,ReactNode} from "react"
declare type ButtonProps = {/**按钮文字 */children?: ReactNode,onClick?: () => void
}
/**组件对外提供的可访问内容*/
export declare type ButtonInstance = {/**触发按钮点击事件*/forceClick: () => void;
}
/**自定义按钮组件 */
const Button = forwardRef((props: ButtonProps, ref: React.Ref<ButtonInstance | undefined>) => {function handleClick() {alert('子组件的事件被触发')if (props.onClick) {props.onClick();}}
//声明可以被访问的内容useImperativeHandle(ref, () => {return {forceClick:handleClick}});return (<button  onClick={handleClick}>{props.children}</button>);
});
export default Button;

父组件中调用子组件的函数
parent.tsx

import Button from './button.tsx'
import {useState} from 'react'
const Parent=()=>{const [buttonInstance,setButtonInstance]=useState<ButtonInstance|null>()function handleParentClick(){buttonInstance?.forceClick()}return (<><button onClick={handleParentClick}>父组件的原生按钮</button><Button ref={setButtonInstance}>自定义的按钮组件</Button></>)
}
export default Parent
http://www.lryc.cn/news/111002.html

相关文章:

  • 【LeetCode】647. 回文子串
  • Open3D(C++) 角度制与弧度制的相互转换
  • 【小沐学NLP】在线AI绘画网站(网易云课堂:AI绘画工坊)
  • GNN code Tips
  • 物联网|按键实验---学习I/O的输入及中断的编程|函数说明的格式|如何使用CMSIS的延时|读取通过外部中断实现按键捕获代码的实现及分析-学习笔记(14)
  • Java对象的前世今生
  • Qt中JSON的使用
  • linux安装Tomcat部署jpress教程
  • 高并发负载均衡---LVS
  • 微前端中的 CSS
  • 在CSDN学Golang场景化解决方案(分布式日志系统)
  • 电脑第一次使用屏幕键盘
  • 【C#学习笔记】类型转换
  • SpringBoot+SSM实战<一>:打造高效便捷的企业级Java外卖订购系统
  • 笙默考试管理系统-MyExamTest--calculagraph
  • Mysql面试突击班索引,事务与锁
  • 数据结构——AVL树
  • AI写作宝有哪些,分享两种AI写作工具
  • 【uniapp 控制页面滑动速度】
  • 7-24 整数的分类处理 (20 分)
  • MYSQL事务同时修改单条记录
  • 安装skywalking并集成到微服务项目
  • 一支笔,一双手,一道力扣(Leetcode)做一宿
  • Kubernetes(K8s)从入门到精通系列之九:使用kubeadm工具快速安装K8s集群
  • RabbitMQ 教程 | 第11章 RabbitMQ 扩展
  • 一分钟完成centos7安装docker
  • NativePHP:使用PHP构建跨平台桌面应用的新框架
  • 删除这4个文件夹,流畅使用手机无忧
  • 使用Bert预训练模型处理序列推荐任务
  • 将word每页页眉单独设置