uniapp开发中踩坑记录modelValue|this.$refs.form.setRules(this.rules)|this.formData.list.push(obj)
具体产生原因尚未清晰。如果不在表单绑定formData,或者不在onReady设置自定义校验规则rules则不会产生list[0]元素,亦或push的不是对象是字符串也不会出现此问题。3、在js中首次对formData对象的list数组push对象时会造成formData多了一个list[0]元素。1、如果在modelValue绑定表单数据formData。2、onReady设置规则自定义校验规则
·
问题复现:
简单说就是:
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] 元素
}
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)