import React from 'react'
import {Card,Form,Input,Button,message} from 'antd'
const FormItem= Form.Item;
class FormLogin extends React.Component{
handleSubmit=()=>{
let userInfo = this.props.form.getFieldsValue();
//此时这里得userInfo 与 values值是一样得
//getFieldsValue 获取一组输入控件的值,如不传入参数,则获取全部组件的值
// validateFields 校验并获取一组输入域的值与 Error,若 fieldNames 参数为空,则校验全部组件
console.log('Received values of userInfo: ', userInfo);
this.props.form.validateFields((err,values)=>{
if (!err) {
//message.success(`${values.username} 欢迎您`)
message.success(`${userInfo.username} 欢迎您`)
console.log('Received values of form: ', values);
} else {
}
})
}
render(){
const { getFieldDecorator} = this.props.form;
return (
)
}
}
export default Form.create()(FormLogin);
class CustomizedForm extends React.Component { ... }
let data = this.form.props.form.getFieldsValue();
// use wrappedComponentRef
const EnhancedForm = Form.create()(CustomizedForm);
this.form = form} />
this.form // => The instance of CustomizedForm
经过 Form.create 包装的组件将会自带 this.props.form 属性,this.props.form 提供的 API
let userInfo = this.props.form.getFieldsValue(); //获取表单中得所有值
this.props.form.validateFields //获取一组输入控件的值,如不传入参数,则获取全部组件的值
const { getFieldDecorator} = this.props.form;
getFieldDecorator
经过 getFieldDecorator 包装的控件,表单控件会自动添加 value(或 valuePropName 指定的其他属性) onChange(或 trigger 指定的其他属性),数据同步将被 Form 接管,这会导致以下结果:
getFieldDecorator(id, options) 参数
const formItemLayout = {
labelCol:{
xs:24,
sm:4
},
wrapperCol:{
xs:24,
sm:12
}
}
{
getFieldDecorator('username',{
//验证规则
rules: [
{ required: true, message: '账号不能为空!' },
{min:5,max:10,message: '不再长度范围内!'},
],
})(
)
}
{
getFieldDecorator('sex', {
initialValue: '1'
})(
男
女
)
}
-InputNumber 数字输入框
{
getFieldDecorator('age', {
initialValue: 18
})(
)
}
{
getFieldDecorator('state', {
initialValue: '2'
})(
)
}
{
getFieldDecorator('isMarried', {
valuePropName:'checked',
initialValue: true
})(
)
}