复杂的响应式,导致回调中value值没有数据,最终还是通过手动判断获取值处理
- 原理没有搞清楚,为什么回调中value没有值
- 背景:动态增加了form表单的字段,通过for循环处理的。对每个新增的字段还要添加字段验证其。就出现了问题
<el-form-item
v-for="(role, index) in currentProject.roleUserMappings"
:key="role.roleId"
:label="role.roleName"
:prop="`roleUserMappings.${index}.selectedUserId`"
>
<el-select v-model="role.selectedUserId" multiple placeholder="请选择用户"
style="width: 200px;"
@change="flush">
<el-option
v-for="user in role.userList"
:key="user.userId"
:label="user.userName"
:value="user.userId"
/>
</el-select>
</el-form-item>
updateRoleValidationRules() {
const rules = {};
this.currentProject.roleUserMappings.forEach((role, index) => {
console.log('userid:', `roleUserMappings.${index}.selectedUserId`);
this.$set(this.rules, `roleUserMappings.${index}.selectedUserId`, [
{
validator: (rule, value, callback) => {
const selectedUsers =this.currentProject.roleUserMappings[index].selectedUserId;
if (!selectedUsers || selectedUsers.length === 0) {
console.log('未选择用户')
callback(new Error(`${role.roleName}必须选择用户`))
} else {
console.log('校验通过')
callback()
}
},
trigger: ['change', 'blur']
}
]);
});
}
const selectedUsers =this.currentProject.roleUserMappings[index].selectedUserId;
if (!selectedUsers || selectedUsers.length === 0) {
