validateStatus
是 Ant Design 中 Form.Item
组件的一个属性,用于指示表单项的验证状态。可以通过设置这个属性来控制表单项的视觉反馈,例如显示错误或成功样式。
validateStatus
的常用值
- ‘success’: 表示验证通过,样式将变为成功状态(通常是绿色)。
- ‘warning’: 表示验证存在警告,样式会有警告效果。
- ‘error’: 表示验证失败,样式会显示为错误状态(通常是红色)。
- undefined: 没有验证信息,使用默认样式。
示例代码
下面是一个完整的例子,展示了如何在 Ant Design 的表单中使用 validateStatus
:
import React from 'react';
import { Form, Input, Button } from 'antd';
const MyForm = () => {
const [form] = Form.useForm();
const onFinish = (values) => {
console.log('Received values:', values);
};
return (
<Form form={form} onFinish={onFinish}>
<Form.Item
label="每单可选物品上限:"
name="goodsLimit"
validateTrigger="onBlur"
validateStatus={
form.getFieldError('goodsLimit').length > 0 ? 'error' : undefined
}
help={form.getFieldError('goodsLimit').length > 0 ? form.getFieldError('goodsLimit')[0] : ''}
rules={[
{ required: true, message: '请输入每单可选物品上限' },
{
validator: (_, value) => {
if (!value || (value >= 1 && value <= 99)) {
return Promise.resolve();
}
return Promise.reject(new Error('请输入1~99之间的整数'));
},
},
]}
>
<Input type="number" placeholder="请输入1~99之间的整数" />
</Form.Item>
<Form.Item>
<Button type="primary" htmlType="submit">
提交
</Button>
</Form.Item>
</Form>
);
};
export default MyForm;
如何工作的
- 获取错误信息:我们使用
form.getFieldError('goodsLimit')
来检查该字段是否存在错误。如果返回的数组长度大于 0,则表示有错误。 - 设置
validateStatus
和help
属性:- 当存在错误时,我们将
validateStatus
设置为'error'
,这将使输入框呈现错误样式。 - 同时,通过
help
属性显示具体的错误消息。
- 当存在错误时,我们将
总结
使用 validateStatus
可以提供更灵活和直观的用户体验,使用户能够及时了解他们输入的数据是否有效。这种方式特别适用于需要即时反馈的场景,比如实时校验用户输入。
内容由零声教学AI助手提供,问题来源于学员提问