Modal和Form结合的 表单对话框 _react

Posted 登陆太阳计划

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Modal和Form结合的 表单对话框 _react相关的知识,希望对你有一定的参考价值。

版本对应 "antd": "^3.26.14",
如果发现报错

 antd__WEBPACK_IMPORTED_MODULE_1__.Form.create(...) is not a function

可参考尝试 指定版本
yarn add antd@^3.26.14 -S

compponentName.js

import React from \'react\';
import { Form, Input, InputNumber } from \'antd\';
const { TextArea } = Input

class EditForm extends React.Component {
    constructor(props) {
        super(props);
    }
    componentWillMount() {
    }
    componentWillReceiveProps(nextProps) {
    }
    componentDidMount() {

    }
    render() {
        const { getFieldDecorator } = this.props.form;
        return <Form labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
            <Form.Item label="账户" >
                {getFieldDecorator(\'username\', {
                    rules: [
                        {
                            required: true,
                            message: \'账户\',
                        },
                    ],
                    initialValue: this.props.username
                })(<Input />)}
            </Form.Item>
            <Form.Item label="代码">
                {getFieldDecorator(\'code\', {
                    rules: [
                        {
                            required: true,
                            message: \'代码\',
                        },
                    ],
                    initialValue: this.props.code
                })(<Input />)}
            </Form.Item>

            <Form.Item label="备注">
                {getFieldDecorator(\'remark\', {
                    rules: [
                        {
                            message: \'备注\',
                        },
                    ],
                    initialValue: this.props.remark
                })(
                    <TextArea row={6} />,
                )}
            </Form.Item>
        </Form>
    }

}
export default Form.create()(EditForm);

引入与使用

import { Modal } from \'antd\';
import EditFormfrom \'../../../components/EditForm\'
...
 <Modal title="表单操作" okText=\'保存\' cancelText=\'取消\'
             visible={this.state.parasWindowVisible}
             onOk={this._handleOK} onCancel={this._handleCancel} >
             <ParamsSet wrappedComponentRef={(inst) => { this.editForm = inst; }}
             {...this.state.Editinfo} />
  </Modal>
....
_handleAdd = () => {
 70         //点击按钮显示模态框
 71         this.setState({ visible: true, });
 72     }
 73     _handleDelete = (record) => {
 74         //删除记录操作
 75     }
 76     _handleOK = () => {
 77         //验证表单数据
 78         this.editForm.props.form.validateFields((err, values) => {
 79             if (!err) {
 80                 //values 可获取到表单中所有键值数据  将数据进行保存操作
 81                 // 清理表单数据
 82                 this.editForm.props.form.resetFields();
 83             }
 84         });
 85     }
 86     _handleCancel = () => {
 87         // 清理表单数据
 88         this.editForm.props.form.resetFields();
 89         //隐藏模态框
 90         this.setState({ visible: false });
 91     }
 92     _handleUpdate = (record) => {
 93         //修改时,赋值表单数据
 94         let Editinfo = {
 95             username: record.username,
 96             code: record.code,
 97             remark: record.remark,
 98         }
 99         this.setState({ visible: true, Editinfo });
100     }

以上是关于Modal和Form结合的 表单对话框 _react的主要内容,如果未能解决你的问题,请参考以下文章

antd -- Form和Modal弹出提示框,默认值不动态变换的问题

element实现Dialog对话框中嵌套form表单(实现添加用户功能)

React+Ts+Antd实现Modal弹框中控制多个Tab页的多个Form表单

Grails JQuery Ajax 表单验证

iview中Modal弹窗做form表单验证相关问题

将 Ant Design Form 与 Modal 集成