antd form使用demo

antd对表单进行了封装,
通过getFieldDecorator可实现表单数据双向绑定

使用步骤:
1、let { getFieldDecorator } = this.props.form;
2、对Form.Item进行了封装,getFieldDecorator(‘xx’,{rules:[],initialValue:’’})()

<Form.Item {...props}>
  {getFieldDecorator('xx',{rules:[],initialValue:''})(<Input/>)}
</Form.Item>

3、使用 Form.create()创建

FilterForm = Form.create()(FilterForm);

4、引用时,通过wrappedComponentRef 可以获取form数据
处理方法中:

 let queryInfo = this.filterForm.props.form.getFieldsValue();

组件引用:

   <FilterForm handleSubmit={this.handleQuery}
         wrappedComponentRef={(inst) => { this.filterForm = inst; }} />

完整form组件

  class FilterForm extends React.Component {
        render() {
            let { getFieldDecorator } = this.props.form;
            return (
                <Form layout="inline">
                    <Form.Item label="城市">
                        {getFieldDecorator('city_id', {
                            initialValue: "0"
                        })(
                            <Select
                                style={{ width: 100 }}
                                placeholder="全部"
                            >
                                <Option value="0">全部</Option>
                                <Option value="1">北京市</Option>
                                <Option value="2">天津市</Option>
                                <Option value="3">深圳市</Option>
                            </Select>
                        )}
                    </Form.Item>
                    <Form.Item >
                        {getFieldDecorator('range_time')(
                            <RangePicker
                                showTime={{ format: 'HH:mm:ss' }}
                                format="YYYY-MM-DD HH:mm:ss"
                                placeholder={['开始时间', '结束时间']}
                            />
                        )}
                    </Form.Item>
    
                    <Form.Item label="订单状态">
                        {getFieldDecorator('order_status', {
                            initialValue: "0"
                        })(
                            <Select
                                style={{ width: 100 }}
                                placeholder="全部"
                            >
                                <Option value="0">全部</Option>
                                <Option value="1">北京市</Option>
                                <Option value="2">天津市</Option>
                                <Option value="3">深圳市</Option>
                            </Select>
                        )}
                    </Form.Item>
                    <Form.Item>
                        <Button type="primary" style={{ marginRight: 10 }} onClick={this.props.handleSubmit}>查询</Button>
                        <Button onClick={() => { this.props.form.resetFields() }}>重置</Button>
                    </Form.Item>
                </Form>
            );
        }
    }
    FilterForm = Form.create()(FilterForm);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值