antd pro 项目Modal中嵌套Form表单,触发表单验证并获取表单提交的数据

在这里插入图片描述
antd pro项目中遇到弹框嵌套表单的需求,并获取其中的数据,
在官方提供的Form表单API中有一个触发表单验证的方法validateFields 触发表单验证
类型: (nameList?: NamePath[]) => Promise

如下为项目中使用

//此为Modal点击确定以后的回调
const okHandle = async () => {
    const fieldsValue = await form.validateFields();
    // const fieldsValue = await this.form.current.validateFields(); 如果是在 class component 下,需要通过 ref 获取数据域。
    //fieldsValue即为表单内的值
    console.log("okHandle -> fieldsValue", fieldsValue)
  };

如果是在 class component 下,需要通过 ref 获取数据域。

form = React.createRef();
//此为Modal点击确定以后的回调
const okHandle = async () => {
    const fieldsValue = await this.form.current.validateFields(); 
    //fieldsValue即为表单内的值
    console.log("okHandle -> fieldsValue", fieldsValue)
  };
 <Modal
      destroyOnClose
      title="创建表单"
      visible={modalVisible}
      onOk={okHandle}
      onCancel={() => onCancel()}
    >
      <Form
        form={form}
        {...layout}>
        <FormItem
          label="表单标题"
          name="subject"
          rules={[{ required: true }]}
        >
          <Input placeholder="请输入" />
        </FormItem>
        <Form.Item label="模版">
          <Select options={pickList} />
        </Form.Item>
        <FormItem
          label="流转步骤"
          name="desc"
        >
          <Input placeholder="请输入" disabled />
        </FormItem>
        <FormItem
          label="评定量表"
          name="desc"
        >
          <Input placeholder="请输入" disabled />
        </FormItem>
        <Form.Item label="人员选择">
          <TreeSelect
            treeData={treeData}
          />
        </Form.Item>
        <Form.Item name="startDate"
          rules={[{ required: true }]}
          label="开始日期">
          <DatePicker />
        </Form.Item>
        <Form.Item
          name="isScheduleSent"
          valuePropName="checked"
          label="定时发送">
          <Checkbox>开始日期后发送</Checkbox>
        </Form.Item>
        <Form.Item name="endDate" rules={[{ required: true }]} label="结束日期">
          <DatePicker />
        </Form.Item>
        <Form.Item name="dueDate" rules={[{ required: true }]} label="到期日期">
          <DatePicker />
        </Form.Item>

      </Form>
    </Modal>
posted @ 2020-06-03 19:37  Mine-  阅读(361)  评论(0编辑  收藏  举报