组件封装----useImperativeHandle和ref
2024-10-21 02:59:03
useImperativeHandle(ref, createHandle, [deps])
作用: 减少暴露给父组件获取的DOM元素属性, 只暴露给父组件需要用到的DOM方法
参数1: 父组件传递的ref属性
参数2: 返回一个对象, 以供给父组件中通过ref.current调用该对象中的方法
在子组件中使用useImperativeHandle向父组件暴露出父组件想要的数据
const Index = ({ form_guid, handleValueChange }: Props, ref: React.Ref<unknown> | undefined) => {
useImperativeHandle(ref, () => ({
validate: validate,
}))
}
export default forwardRef(Index)
在父组件中
const Index = (props: ComponentProps) => {
// 创建ref
const formViewRef: MutableRefObject<any> = useRef()
// 使用子组件的数据
const handleSave = () => {
const validateStatus = formViewRef.current.validate()
}
return (
// 使用ref
<FormView ref={formViewRef} form_guid={form_guid} handleValueChange={handleValueChange} />
)
最新文章
- MySQL与Oracle 差异比较之三函数
- dsp与sem的互补以及技术实现
- Esper系列(六)子查询、Exists、In/not in、Any/Some、Join
- DTO学习系列之AutoMapper(五)----当EntityFramework爱上AutoMapper
- ASP.NET中连接数据库的各种方法
- HYSBZ 2818 gcd
- Android开发ListView使用OnScrollListener实现分页加载数据
- Javascript高级编程学习笔记(72)—— 模拟事件(2)IE事件模拟
- 使用fdisk进行分区
- spring + quartz定时任务,以及修改定时任务
- python之路---05 字典 集合
- OpenGL ES 2 for Android - A Quick Start Guide
- js原生态函数中使用jQuery中的 $(this)无效的解决方法
- Luogu 1063 能量项链(动态规划)
- java常见包
- [svc]mousedos网络批量部署xp
- activemq、rabbitmq、kafka原理和比较
- Buildroot构建指南--快速上手与实用技巧
- PHP 备份还原 MySql 数据库
- 【C#学习笔记】之用button使得textbox中数字的值增减
热门文章
- 编码中的Adapter,不仅是一种设计模式,更是一种架构理念与解决方案
- 关于AWS-IAM-certificate-证书的说明
- .NET 6 跨服务器联表查询
- P8548 小挖的买花 方法记录
- Vue3解决ElementPlus Drawer或弹出对话框不生效的问题
- GMOJ3284 [GDOI2013] 重构 题解
- python同时识别多张人脸(运用face_recognition)
- 如何用webgl(three.js)搭建一个3D库房,3D仓库,3D码头,3D集装箱可视化孪生系统——第十五课
- 三十五、kubernetes NameSpace介绍
- Golang Gorm time 时间字段格式化模型类 重写