antd form试用getfielderror来设置按钮的disabled
时间: 2024-10-17 18:13:04 浏览: 37
在Ant Design(antd)的Form组件中,`getFieldError`是一个方法,用于获取某个字段的错误信息。当你想要基于表单字段是否校验失败来控制按钮的状态,例如将其设为禁用(disabled),你可以按照以下步骤操作:
1. 首先,在Form组件内,你需要声明一个受控的输入字段,并给它一个ref,例如一个名为`username`的输入框:
```jsx
import { Form, Input, Button } from 'antd';
const { Field } = Form;
<Form ref={formRef}>
<Field name="username" rules={[{ required: true, message: '请输入用户名' }]}>
{(props) => <Input ref={(c) => props.ref = c} />}
</Field>
</Form>
```
2. 然后,在你想控制按钮的地方,检查`username`字段的错误状态:
```jsx
const { getFieldError } = formRef.current; // 获取form实例的方法
<Button type="primary" disabled={!!(getFieldError('username')?.length > 0)}>
提交
</Button>
```
这里我们使用`!`运算符取反,因为`getFieldError`返回的是数组,如果存在错误则长度大于0,所以当错误不为空时(`!...`)按钮就会被禁用。
阅读全文