问题复现:

 简单说就是:

1、如果在modelValue绑定表单数据formData
2、onReady设置规则自定义校验规则rules
3、在js中首次对formData对象的list数组push对象时会造成formData多了一个list[0]元素。
    具体产生原因尚未清晰。如果不在表单绑定formData,或者不在onReady设置自定义校验规则rules则不会产生list[0]元素,亦或push的不是对象是字符串也不会出现此问题。

 

<template>
    <view>
        <uni-forms  ref="form" :modelValue="formData">//使用modelValue绑定表单数据
                    <uni-forms-item name="name" label="姓名">
                        <uni-easyinput v-model="formData.name" type="text" placeholder="请输入" />
                    </uni-forms-item>
                    <uni-forms-item name="sex" label="性别">
                        <uni-easyinput v-model="formData.sex" type="text" placeholder="请输入" />
                    </uni-forms-item>
                    
                    <button class="button" @click="submit">控制台打印</button>
                </uni-forms>
    </view>
</template>
export default {
        data() {
            return {
                formData:{
                    name:'',
                    sex:'',
                    list:[],
                },
                rules: {
                    name: {
                        rules: [{
                            required: true,
                            errorMessage: '请选择设备',
                        }]
                    },
                    sex: {
                        rules: [{
                            required: true,
                            errorMessage: '请选择故障类别',
                        }]
                    },                
                }
            }
        },
        onReady() {
            // 包含自定义校验规则所以需要在onReady中设置规则
            this.$refs.form.setRules(this.rules);
        },
        methods: {
            submit(){
                let obj={
                    text:'bbb',
                    value:'aaa'
                }
                this.formData.list.push(obj)//在此对数组push对象
                console.log('点击',this.formData)                
                //此时控制台打印的this.formData对象多了个list[0]    元素        
            }
        }
    }


 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐