安装
yarn add antd
引入样式
@import '~antd/dist/antd.css';
antd 表单验证
方法一: 在 rules 中添加简单规则验证
<Form.Itemlabel="密码"name="password"rules={[{ required: true, message: '请输入密码!' }, {min: 4,message: '最少4个字符'}, {max: 16,message: '最多16个字符'}]}><Input.Password /></Form.Item>
方法二: 在 rules 中返回一个 validator 函数实现表单验证
<Form.Itemlabel="用户名"name="username"rules={[{ required: true, message: '请输入用户名!' }, () => ({validator(_, value=''){if(/\W/.test(value)) return Promise.reject('只能由字母数字下划线组成')if(value.length > 10) return Promise.reject('最多10个字符')if(value.length < 3) return Promise.reject('最少3个字符')return Promise.resolve()}})]}><Input /></Form.Item><Form.Itemlabel="确认密码"name="ConfirmPassword"rules={[{ required: true, message: '请输入确认密码!' }, ({ getFieldValue }) => ({validator(_, value='') {if (!value || getFieldValue('password') === value) {return Promise.resolve();}return Promise.reject(new Error('两次密码输入不一致!'));},}),]}><Input.Password /></Form.Item>
注意 validator 的参数 value 要给一个默认值,否则当什么都不输入直接提交时会报错
Validation error on field ‘username’
给 input 设置默认值
在 Form 的 initialValues 中给 Item 中的 input 设置默认值
<Formname="basic"initialValues={{ username: 'jack', password: '1234', remember: true }}onFinish={onFinish}onFinishFailed={onFinishFailed}autoComplete="off"><Form.Itemname="username"rules={[{ required: true, message: '请输入用户名!' }]}><Inputprefix={<UserOutlined className="site-form-item-icon" />}placeholder="用户名"/></Form.Item>// ...
