2.0.4 • Published 2 years ago

xui-form v2.0.4

Weekly downloads
55
License
MIT
Repository
-
Last release
2 years ago

x-form

react组件开发规范


创建组件的方式

npm安装

npm install xui-form --save

使用方式

<Form onSubmit={this.onSubmit.bind(this)} >
    <Form.Item>
    {getFieldDecorator('obj.name',{value:'aa'})(
    <Input onChange={this.onChange.bind(this)}/>
    )}
    </Form.Item>
    <Form.Item>
    {getFieldDecorator('biz.password',{rules:[
    { 
        required:true, message:'必填项'
    },{ 
    pattern:/^\d*$/, message:'只能输入数字'
    }
    ]})(
    <Input type="password" ref={ref=>this.passRef=ref}/>
    )}
    </Form.Item>
    <Form.Item>
    {getFieldDecorator('obj.sex',{value:['2']})(
    <Select placeholder="请选择" multiple={true} width={180} >
    <Option value="1">这是一段很长很长的文字这是一段很长很长的文字</Option>
    <Option value="6">我好2</Option>
    </Select>
    )}
    </Form.Item>
    <Form.Item>
    <button type="submit" value="提交">提交</button>
    </Form.Item>
</Form>

API

方法说明类型默认值
getFieldDecorator用于和表单进行双向绑定
getFormData获取表单数据对象
setFieldsValue设置表单数据绑定
validateFields验证表单所有元素

getFieldDecorator(id, options) 参数

参数说明类型默认值
id必填输入控件唯一标志。支持嵌套式的写法。string
options.rules验证规则
options.value子节点的初始值,类型、可选值均由子节点决定

校验规则

参数说明类型默认值
required不为空bool
minLength最小长度number
maxLength最大长度number
min最小值number
max最大值number
pattern正则表达式Regex
custom自定义验证string需要在组件的构造函数中调用this.props.onLoad(this),然后声明对应的验证方法,返回truefalse
async异步验证string异步验证需要在组件中定义对应的方法,接收value值并返回promise

全局添加验证规则

Form.addMethod('testRule',(v)=>{
  if(v=='123'){
    return false;
  }else{
    return true;
  }
})

或者自定义提示信息

Form.addMethod('testRule',(v,props,data)=>{
  if(v=='123'){
    return {success:false,message:'最大值'};
  }else{
    return true;
  }
})

异步验证

  asyncValidate(v) {
    return new Promise((resovle, reject) => {
      fetch('http://192.168.80.37:8080/demo/del.action', {
        method: 'POST'
      }).then(function (response) {
        return response.json();
      }).then(res => {
        console.log(res)
        if (res.success) {
          resovle();
        } else {
          reject('ajax error')
        }
      })
    })
  }
{getFieldDecorator('biz.password.txb', {
            rules: [{
              required: true, message: '密码必填项'
            }, {
              custom: 'validate', message: "自定义验证"
            },
            {
              async: 'asyncValidate', message: "异步验证"
            }]
          })(
            <NewPassWord ref={ref => this.passRef = ref} />
          )}

关于作者

https://github.com/tianxiangbing

xui

react xui组件一直在持续更新中,欢迎大家关注https://github.com/react-xui

2.0.4

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

3 years ago

1.4.4

3 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.9

3 years ago

1.3.8

3 years ago

1.3.7

4 years ago

1.3.6

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.9

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.1.7

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago

0.0.0

5 years ago