react hooks antd 父组件取子组件form表单的值

在React中,父组件可以使用ref来访问子组件的方法或属性。子组件包含一个表单, 使用forwardRef、useImperativeHandle:forwardRef允许组件使用ref将 DOM 节点暴露给父组件,使用useImperativeHandle暴露方法给父组件。

子组件:

javascript 复制代码
import React, { forwardRef, useImperativeHandle } from 'react';
import { Form } from "antd";

const SubApp = (props, ref) => {
  const [form] = Form.useForm();

  useImperativeHandle(ref, () => ({
    formFields: form,
  }));

  return (
    <Form form={form} ref={ref} >
      ...
    </Form>
  );
};

export default forwardRef(SubApp);

父组件:

javascript 复制代码
import React, { useRef } from "react";
import { Button } from "antd";
import SubApp from "./subApp";

const FatherApp = () => {
  const formRef = useRef(null);

  // 查询按钮触发
  const query = () => {
    // 获取自定义条件form表单值
    if (formRef.current) {
      const { formFields } = formRef.current;
      // 首先进行表单校验
      formFields.validateFields().then(() => {
        const values = formFields.getFieldsValue();
        console.log(values);
      });
    }
  }

  return (
    <Button type= "primary" onClick = { query } > 查询 </Button>
    <SubApp ref = { formRef } />
  );
};

export default FatherApp;
相关推荐
markfeng81 分钟前
Redux 与 React-Redux 深度解析:从原理到最佳实践
react.js
IT知识分享3 分钟前
从零开发在线简繁转换工具:OpenCC 实战、避坑经验与方案选型
javascript·python
mqcode5 分钟前
Vue3 + Element Plus + Vite 企业级后台框架搭建全流程
前端
SL-staff6 分钟前
Web 白板技术架构深度解析:从渲染到协作的选型哲学
前端·架构
川冰ICE9 分钟前
JavaScript实战④|天气查询应用,调用API与异步处理
javascript·css·css3
微扬嘴角10 分钟前
react篇4--setState、LazyLoad和Hooks
前端·javascript·react.js
杨梦馨21 分钟前
万级数据表格卡死?Web Worker 一招搞定
前端·javascript·vue.js
阿明在折腾21 分钟前
从Canvas到AI模型:我在线工具站里的图片处理实战
前端·后端
CainChen24 分钟前
Chrome 远程调试 Android 卡在 Pending authentication 的解决办法
前端
杨运交24 分钟前
[030][Web模块]Spring Boot 验证与 OpenAPI 集成实战:从校验规则到文档生成
前端·spring boot·python