avatar

5分钟快速精通Ant Design Form 1分钟快速构建复杂Ant Design Form表单

Ant Design Form

Antd 表单的核心无非是以下两点

  1. 表单创建(Form.create)在this.props写入form属性
  2. 表单与组件的双向绑定(this.props.form.getFieldDecorator
  3. 表单的取值(this.props.form.validateFields / this.props.form.validateFieldsAndScroll

表单创建

Form.create这是一个高阶函数,传入的是react组件,返回一个新的react组件,在函数内部会对传入组件进行改造,添加上一定的方法用于进行一些秘密操作 ,这里不多做解释,有兴趣的同学可以上官网查看。

我是飞机票(React-高阶组件),点我
使用方法如下:

1
2
3
4
class CustomizedForm extends React.Component { ... }

// use wrappedComponentRef
const EnhancedForm = Form.create()(CustomizedForm);

或者

1
2
@Form.create()
class CustomizedForm extends React.Component { ... }

表单与组件的双向绑定

他的目的是将表单的组件的值与表单绑定。最后表单可以直接取到某某组件的值。

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

这个是一个非常简单的绑定,组件input的值都会由’searchName’这个属性收纳。
可以直接取值,当然也可以加入自己的校验规则,等等。这里不多做解释,这些都是附加的进阶功能,这里不多做描述。

我是飞机票(表单进阶),点我!

表单的取值

1
2
3
4
5
this.props.form.validateFields((err, values) => {
if (!err) { // 这里也可以不要,是用于校验的。
console.log('Received values of form: ', values);
}
});

这是一个非常简单的取值,当然可以定制的取值,或者定制的校验,比如,在获取验证码的时候,不需要校验密码是否输入或者符合你的规则,就可以只校验手机号,等等。这里不多做解释,这些都是附加的进阶功能,这里不多做描述。

我是飞机票(表单进阶),点我!

基本上你掌握了这些就可以较为灵活的使用Ant Design Form了。

但是!划重点了!

如果有一些更加进阶的想法。请看!

表单的进阶使用

重中之重

如果你觉得自己构建表单非常麻烦,或者对表单的理解还是够透彻,想一步到位构件表单,推荐本人自用自创组件
ant-design-form

上面的文档非常详细,如果有问题随时可以给我提issues。如果喜欢的话麻烦点个start~

我是ant-design-from的飞机票,点我点我!!

文章作者: Derrick
文章链接: http://derricktel.github.io/2019/07/28/5%E5%88%86%E9%92%9F%E5%BF%AB%E9%80%9F%E7%B2%BE%E9%80%9AAnt-Design-Form-1%E5%88%86%E9%92%9F%E5%BF%AB%E9%80%9F%E6%9E%84%E5%BB%BA%E5%A4%8D%E6%9D%82Ant-Design-Form%E8%A1%A8%E5%8D%95/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Derrick
打赏
  • 微信
    微信
  • 支付寶
    支付寶