如何解决试图不触发对禁用字段的验证
我正在使用 react 最终表单验证来验证表单。有一个要求,我需要禁用基于另一个字段(复选框)的某些字段的验证,但我在提交表单时没有这样做。显示验证错误。 下面是我进行表单验证的代码
int value = default; // = 0
DateTime dateTime = default; // = 1/1/0001 12:00:00 AM
Guid id = default; // = 00000000-0000-0000-0000-000000000000
然后这是 render={({ handleSubmit,form,submitting,pristine,values }) => {
const formFields = fieldDefs.map(
({
name,title,drawer: {
component: Component,validate,isFieldWrapperComponent,fieldInstructionNote,options,renderOption,checkIsdisabled,checkIsHidden,...props
}
}) => {
const { isdisabled,updateValues } = checkIsdisabled?.(values) ?? {};
if (updateValues?.length) {
updateValues.forEach((params) => form.mutators.setValueMutator(...params));
}
return (
<Row key={name} gutter={8} style={{ paddingBottom: '8px' }}>
{(
<>
<Col span={6}>
<Text strong>{title}</Text>{' '}
{validate && <span style={{ color: 'red' }}>*</span>}
</Col>
<Col span={2} />
<Col span={16}>
<Field
name={`draftLibraryData.${name}`}
component={Component}
validate={isValidate(isdisabled,validate)}
options={options}
render={renderOption}
disabled={isdisabled}
{...props}
/>
</Col>
</>
)}
</Row>
);
}
);
return (
<Drawer
title={state.drawerTitle}
placement="right"
closable={submitting || pristine}
maskClosable={submitting || pristine}
visible={state.isDrawerVisible}
width={897}
>
<form onSubmit={handleSubmit}>
<p>
<span style={{ color: 'red' }}> * Indicates a required field </span>
</p>
{formFields}
<SectionActionBar
handlediscard={() => resetValidationState(form,values,fieldDefs)}
isModified={!(submitting || pristine) || istempDataModified(values)}
isFloatingalert={false}
form={form}
/>
<FormState height="300px" overflowY="auto" border="1px solid black" />
</form>
</Drawer>
);
)}
isValidate.
当我提交表单时,我遇到了一个问题;为 export const isValidate = (isdisabled,validate) => {
return isdisabled ? undefined : validate;
};
为 true 的字段触发验证。任何人都可以指出我正确的方向吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。