react 表单设计器_Ant-Design-组件-——-Form表单(一)

Ant Design of React @3.10.9
拉取项目 luwei.web.study-ant-design-pro, 切换至 query 分支,可看到 Form 表单实现效果

实现一个查询表单

ff2e93e7d6793b2f199d6e55018fdf40.png

思路

  1. Create表单:@Form.create()
  2. 表单数据绑定 getFieldDecorator
  3. 渲染查询表单的查询条件 render
  4. 获取查询条件的值 validateFields

代码

1. Create表单:`@Form.create()`

Form.create()

这是一个高阶函数,传入的是react组件,返回一个新的react组件,在函数内部会对传入组件进行改造,添加上一定的方法用于进行一些秘密操作 如果有对高阶组件有想要深入的请移步《深入理解 React 高阶组件》,我们这里不做过多的深究。

Form.create() 包装过的组件会自带 this.props.form 属性

// 使用方式如下:
class CustomizedForm extends React.Component {}
CustomizedForm = Form.create({})(CustomizedForm);

代码中结合 @ 的修饰器,用 @Form.create() 进行创建。

2. 表单数据绑定 `getFieldDecorator`

getFieldDecorator(id, options)

用于和表单进行双向绑定

<!-- 表单数据绑定 -->
<Form.Item {...formItemLayout} label={'名称'}>
    {getFieldDecorator('searchName')(
        <Input placeholder={'请输入名称'} />
    )}
</Form.Item>

3. 渲染查询表单的查询条件 `render `

在定义表单字段的时候,渲染到页面中,与步骤2代码一致

更多FormItem属性请参考Ant Design - Form - Form.Item

4. 获取查询条件的值 `validateFields`

form.validateFields / validateFieldsAndScroll

校验并获取一组输入域的值与 Error,若 fieldNames 参数为空,则校验全部组件

const { form } = this.props;

// 获取并检查表单数据
form.validateFields((err, fieldsValue) => {
      if (err) return;
      const { searchName = '' } = fieldsValue;
});

深入了解

  • Ant Design Form表单
  • rc-form
  • antd源码解读(9)- Form
作者简介:李尧晖,芦苇科技web前端开发工程师,代表作品:飞花亭小程序、续航基因、YY表情红包、YY叠方块直播竞赛小游戏。擅长网站建设、微信公众号开发、微信小程序开发、小游戏制作、企业微信制作、H5建设,专注于前端框架、服务端渲染、SEO技术、交互设计、图像绘制、数据分析等研究。

欢迎和我们一起并肩作战: web@talkmoney.cn
访问 www.talkmoney.cn 了解更多

提供深圳微信公众号制作,高质量的钉钉外包,广东企业微信建设,东莞微信小程序制作,专业的小游戏开发,广州H5建设

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ant-design 是一个流行的React UI组件库,提供了丰富的组件来帮助开发者快速构建用户界面。在ant-design中,表单验证是一个重要的功能,可以通过自定义组件来实现。 对于自定义组件,我们可以使用Form.create方法来创建一个高阶组件。在自定义组件中,我们可以通过getFieldDecorator方法来包装我们的自定义组件,实现表单验证的功能。 在包装自定义组件时,我们可以使用rules参数来定义验证规则。比如,我们可以通过required:true来指定该字段为必填项,通过message参数来指定验证不通过时的错误提示信息。除此之外,我们还可以自定义其他验证规则,比如验证正则表达式、长度范围等。 在自定义组件中,可以通过this.props.form.getFieldError来获取某个字段的验证错误信息,通过this.props.form.isFieldValidating来判断某个字段是否正在进行验证,通过this.props.form.validateFields来触发表单验证。 同时,我们还可以使用validateTrigger参数来指定触发表单验证的时机,默认是onChange事件。比如,我们可以将validateTrigger设置为onBlur,表示在失去焦点时进行表单验证。 总结来说,ant-design提供了一系列的API来实现表单验证功能,通过自定义组件的方式可以很方便地实现对自定义组件的验证。开发者可以根据自己的需求灵活使用这些API来完成表单验证的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值