我使用的是react+procomponents;procomponents也在antd的基础上做的封装,
平时碰到的都是from校验,直接写rules就行
但是table里面有好几个字段
把rules写成一个数组,使用rules的第二个参数,打印这个value,可以看到value就是table里的每一条数据
附上代码:
<ProForm.Item
label="编辑安全生产信息"
name="certification"
trigger="onValuesChange"
rules={[
{ required: true },
() => ({
validator(_, value) {
console.log(value, "value");
const certificationNameList = value.map(item => item.certificationName)
const certificationNumberList = value.map(item => item.certificationNumber)
const certificationsList = value.map(item => item.certifications)
let flag
if(certificationNameList.some(val=>val==null)||certificationNumberList.some(val=>val == '')||certificationsList.some(val=>val=='') ){
flag=false
} else{
flag = true
}
console.log(flag,'ffff')
if (value && flag) {
return Promise.resolve();
}
return Promise.reject(
new Error("请填写安全生产信息")
);
},
}),
]}
>
<EditableProTable
rowKey="id"
toolBarRender={false}
columns={columns}
recordCreatorProps={{
newRecordType: "dataSource",
position: "bottom",
record: () => ({
id: Date.now(),
}),
}}
editable={{
type: "multiple",
editableKeys,
onChange: setEditableRowKeys,
actionRender: (row, _, dom) => {
return [dom.delete];
},
}}
/>
</ProForm.Item>