vue jsx antd form 表单控件显示隐藏造成数据丢失

发布于 2022-09-12 02:03:23 字数 6208 浏览 21 评论 0

我在vue里面用jsx的形式写antd的表单绑定,但是点击按钮显示或隐藏一个formitem后,来回切换,造成下面的数据全部都没有,不知道怎么办,是我写的有问题么。。。请教~

<script>
export default {
    data () {
        return {
            isShow: false,
            form: this.$form.createForm(this)
        };
    },
    methods: {
        submit () {
            this.form.validateFieldsAndScroll((err, values) => {
                if (err) {
                    return;
                }
                console.log(values, 'formData');
            });
        },
        show () {
            this.isShow = !this.isShow;
        }
    },
    render () {
        let {getFieldDecorator} = this.form;
        
        return (
            <div>
                <hm-button onClick={this.show}>显示隐藏</hm-button>
                <a-form form={this.form}>
                    <a-form-item label='备注'>
                        {
                            getFieldDecorator('remark',
                                {
                                    rules: [
                                        {
                                            required: true,
                                            message: '请填备注'
                                        }
                                    ]
                                })(<a-textarea placeholder='备注' {...{
                                props: {
                                    placeholder: '备注'
                                }
                            }}/>)
                        }
                    </a-form-item>
                    {
                        this.isShow &&
                            <a-form-item label='订单号'>
                                {
                                    getFieldDecorator('seq',
                                        {
                                            rules: [
                                                {
                                                    required: true,
                                                    message: '请填写订单号'
                                                }
                                            ]
                                        }
                                    )(<a-input {...{
                                        props: {
                                            placeholder: '订单号'
                                        }
                                    }}/>)
                                }
                            </a-form-item>
                    }
                    <a-form-item label='售后原因'>
                        {
                            getFieldDecorator('verify_return_reason',
                                {
                                    rules: [
                                        {
                                            required: true,
                                            message: '请填写实际售后原因'
                                        }
                                    ]
                                })(<a-select {...{
                                props: {
                                    placeholder: '售后原因',
                                    options: [
                                        {
                                            label: '产品有问题',
                                            value: 1
                                        },
                                        {
                                            label: '物流有问题',
                                            value: 2
                                        }
                                    ]
                                }
                            }}/>)
                        }
                        
                    </a-form-item>
                    <a-form-item label='德分'>
                        {
                            getFieldDecorator('paypoints_number',
                                {
                                    rules: [
                                        {
                                            required: true,
                                            message: '请填写德分'
                                        }
                                    ]
                                })(<a-input {...{
                                props: {
                                    placeholder: '德分'
                                }
                            }}/>)
                        }
                    </a-form-item>
                    <a-form-item label='是否赔付'>
                        {
                            getFieldDecorator('is_compensate',
                                {
                                    rules: [
                                        {
                                            required: true,
                                            message: '请填写是否赔付'
                                        }
                                    ]
                                })(<a-radio-group {...{
                                props: {
                                    placeholder: '是否赔付',
                                    options: [
                                        {
                                            label: '否',
                                            value: 0
                                        },
                                        {
                                            label: '是',
                                            value: 1
                                        }
                                    ]
                                }
                            }}/>)
                        }
                    </a-form-item>
                </a-form>
                <hm-button onClick={this.submit}>提交</hm-button>
            </div>
        );
    }
};
</script>

微信截图_20200405173615.png
微信截图_20200405173720.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文