试图不触发对禁用字段的验证

问题描述

我正在使用 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 (将#修改为@)