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

react 子组件暴露,父组件接收

// Child.jsx
import React, { forwardRef, useImperativeHandle, useState } from 'react';
import { Form, Input } from 'antd';const Child = forwardRef((props, ref) => {const [form] = Form.useForm();const [customState, setCustomState] = useState('默认值');useImperativeHandle(ref, () => ({async getData() {const formValues = await form.validateFields();return {...formValues,customState,};}}));return (<div style={{ border: '1px solid #aaa', padding: 10, marginBottom: 10 }}><Form form={form}><Form.Item name="name" label="名称" rules={[{ required: true }]}><Input /></Form.Item></Form><div><label>其他状态:</label><Inputvalue={customState}onChange={(e) => setCustomState(e.target.value)}/></div></div>);
});export default Child;

父组件如何接收

 

// Parent.jsx
import React, { useRef } from 'react';
import { Button, message } from 'antd';
import Child from './Child';export default function Parent() {const childRef1 = useRef();const childRef2 = useRef();const handleSave = async () => {try {const data1 = await childRef1.current.getData();const data2 = await childRef2.current.getData();console.log('统一收集到的数据:', {child1: data1,child2: data2});message.success('保存成功');} catch (err) {message.error('有数据校验不通过');}};return (<div style={{ padding: 20 }}><Child ref={childRef1} /><Child ref={childRef2} /><Button type="primary" onClick={handleSave}>保存</Button></div>);
}

http://www.dtcms.com/a/153599.html

相关文章:

  • Redis持久化机制深度解析:RDB、AOF与混合持久化
  • 计算机图形学实践:结合Qt和OpenGL实现绘制彩色三角形
  • (第一篇)Springcloud简介与工程搭建
  • Winddows11官网下载安装VMware Workstation Pro17(图文详解)
  • Redis LFU 策略参数配置指南
  • 【C++基础知识】namespace前加 inline
  • 初识Redis · 主从复制(上)
  • 10天学会嵌入式技术之51单片机-day-8
  • Kotlin Multiplatform--01:项目结构基础
  • ctfhow——web入门214~218(时间盲注开始)
  • 【FAQ】安装Agent的主机,为何不能更改显示分辨率
  • SQL Server 2008 R2中varchar(max)的含义
  • Hive 数据同步到 Doris 最佳实践方案:从场景适配到性能调优全解析
  • Python3 基础:控制流结构(条件语句、循环)
  • 【C++基础知识】C++类型特征组合:`disjunction_v` 和 `conjunction_v` 深度解析
  • Visual Studio C/C++编译器cl.exe的/source-charset与/execution-charset设置项
  • 扩展中国剩余定理
  • day 32 学习笔记
  • 【前端】【业务场景】【面试】在前端开发中,如何优化 SVG(可缩放矢量图形)的性能,特别是在处理复杂图形和动画时
  • ZooKeeper配置优化秘籍:核心参数说明与性能优化
  • 多维时序 | LightGBM多变量时序预测(Matlab完整源码和数据,适合基础小白研究)
  • 最高支持高速L3商用,华为发布ADS 4智驾系统
  • AT45DB161串行FLASH操作
  • 晶振不集成到芯片内部的原因分析
  • Ubuntu中选择Python虚拟环境
  • 考拉悠然:科技与匠心,以烟草虫情AI监测系统共筑品质未来
  • git tag使用场景和实践
  • BDO分厂开展地沟“大清肠”工作
  • 交通运输行业综合智慧监管平台:商贸物流的安全与效率引擎
  • G3学习笔记