# 自动校验
得益于 mobx
的响应式,edsheet
会在创建 Table 的时候自动收集 rule
校验的依赖字段。当对应字段
的 value
值发生改变(通过表单组件 Input, Select 等输入或者手动赋值)时,就会重新执行校验。
const columns = [
{
title: '性别',
field: 'gender',
component: 'select',
enum: [
{ label: '男', value: 'man' },
{ label: '女', value: 'woman' },
]
},
{
title: '年龄',
field: 'age',
component: 'input',
componentProps: { type: 'number' },
rule: {
validator(val, row) {
const gender = row.data.gender
if (gender === 'man' && val < 22) {
throw '男性要求大于22岁'
} else if (gender === 'woman' && val < 20) {
throw '女性要求大于20岁'
}
}
}
}
]
如上,当用户每次选择了不同的性别的时候,对应行上的 age
列都会自动执行 validator 进行校验。