记Antd组件-Form简单使用步骤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记Antd组件-Form简单使用步骤相关的知识,希望对你有一定的参考价值。

参考技术A 1.引入from组件

import Form from "antd";

2.在组件上方使用@Form.create()注解注入表单,注入后可以通过this.props.form获取

@Form.create()

export default class CountPageextends Component

     ....



3.通过const getFieldDecorator = this.props.form; 获取表单的双向绑定函数

<Form>

<Card title="基本信息">

    <Row gutter=24>

        <Col span=8 offset=4>

            <Form.Item label="通票首重重量">

                getFieldDecorator('firstWeight')(<Input placeholder="首重重量KG"/>)

            </Form.Item>

        </Col>

        <Col span=8>

            <Form.Item label="通票首重价格">

                getFieldDecorator('firstWeightPrice')(<Input placeholder="首重价格(元)"/>)

            </Form.Item>

        </Col>

    </Row>

</Card>

4.编写函数获得表单内的值

submit = ()=>

    const data =this.props.form.getFieldsValue();

    console.log("表单中的值",data)



补充:

1.

报`getFieldDecorator` will override `value`, so please don't set `value` directly and use `setFieldsValue` to set it.错误的话,因为getFieldDecorator可以设置默认值,会替换input的默认值。

getFieldDecorator('xxx',initialValue:1)(<Input placeholder="首重重量KG"/>)

解决

2.双向绑定过程中对表单内容校验

<Form.Item label="" style=marginBottom:0>

    getFieldDecorator('select_tas',

    rules: [required:true,message:DEFAULT_TIMEAREA[1] ],

    initialValue:DEFAULT_TIMEAREA[0]

)(

<Select id="tas" style=width:'100%' >

timeArea ?timeArea.map(( value, text ) =><Option key='time' + value value=value>text</Option>) :null

</Select>

)

</Form.Item>

3.表单内容改变时动态更新

@Form.create(onValuesChange:(props, changedValues, allValues) => that.requestData(props, changedValues, allValues))

class SelectBarextends Component

    ...  

    //选中时调用提交表单

    requestData = (props, changedValues, allValues) =>

 

以上是关于记Antd组件-Form简单使用步骤的主要内容,如果未能解决你的问题,请参考以下文章

React-Antd4的Form表单校验

antd在form中使用上传组件

原创:antd源码解读- Form

Vue使用antd组件a-form-model-实现数据连续添加

Vue使用antd组件a-form-model-实现数据连续添加

Vue使用antd组件a-form-model-实现数据连续添加