FormDependency 用法
aaa, bbb 是 from.item 里 name = name , name = address的值 formValue 是整个表单其他form.item 的值, 数据结构是 { name: aaa, adress:bbb }
在 ProFormDependency 组件下,接收一个回调函数,回调函数的参数是
<ProFormDependency<any> name={[name , address] as any}>
{(formValue: any) => {
/**
* 一组查询条件分为keyField, operator, value三部分
*/
const aaa = formValue[name]
const bbb = formValue[address]
------------
!!! 2个月没写Form,被 <Form.Item required={true} 被 required={true} 坑了,这个是不会触发校验的 。
这有 rules才会触发校验 。
<Form.Item rules={[ {
required: true,
message: '请输入字段名称',
}, ]}
--------------------
方法一:
通过用 <Button htmlType="submit" />
调用 web 原生提交逻辑。 从而触发 Form表单的API。
import React from 'react';
import './index.css';
import { Button, Form, Input, message, Space } from 'antd';
const App: React.FC = () => {
const [form] = Form.useForm();
const onFinish = () => {
message.success('Submit success!');
};
const onFinishFailed = () => {
message.error('Submit failed!');
};
const onFill = () => {
form.setFieldsValue({
url: 'https://taobao.com/',
});
};
return (
<Form
form={form}
layout="vertical"
onFinish={onFinish}
onFinishFailed={onFinishFailed}
autoComplete="off"
>
<Form.Item
name="url"
label="URL"
rules={[{ required: true }, { type: 'url', warningOnly: true }, { type: 'string', min: 6 }]}
>
<Input placeholder="input placeholder" />
</Form.Item>
// <Form.Item> //我屏蔽了form.item,证明htmlType="submit" 只要再form组件里面就能生效
<Space>
<Button type="primary" htmlType="submit">
Submit
</Button>
<Button htmlType="button" onClick={onFill}>
Fill
</Button>
</Space>
// </Form.Item>
</Form>
);
};
export default App;
方法二: (推荐)
通过创建表单的Action来操作
const [form] = Form.useForm();
const handleSubmit = async () => {
const values = await form.validateFields()
}
通过这样去触发 校验。
<Form
form={form}
...prop
>
</Form>