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;
相关推荐
mapbar_front34 分钟前
面试问题—上家公司的离职原因
前端·面试
昔人'1 小时前
css使用 :where() 来简化大型 CSS 选择器列表
前端·css
昔人'1 小时前
css `dorp-shadow`
前端·css
流***陌1 小时前
扭蛋机 Roll 福利房小程序前端功能设计:融合趣味互动与福利适配
前端·小程序
可触的未来,发芽的智生1 小时前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
烛阴2 小时前
用 Python 揭秘 IP 地址背后的地理位置和信息
前端·python
前端开发爱好者2 小时前
尤雨溪官宣:"新玩具" 比 Prettier 快 45 倍!
前端·javascript·vue.js
why技术2 小时前
从18w到1600w播放量,我的一点思考。
java·前端·后端
欧阳呀2 小时前
Vue+element ui导入组件封装——超级优雅版
前端·javascript·vue.js·elementui
清风徐来QCQ2 小时前
css总结
前端