попытка не запускать проверку для отключенных полей

#javascript #reactjs #validation #react-final-form

Вопрос:

Я использую окончательную проверку формы react для проверки формы. Существует требование, чтобы мне нужно было отключить проверку некоторых полей на основе другого поля (флажок), но я не смог этого сделать при отправке формы. Отображается ошибка проверки. Ниже приведен код, в котором я выполняю проверку формы

  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 amp;amp; <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;
};
 

Когда я отправляю форму, я сталкиваюсь с проблемой; проверка срабатывает для полей с isDisabled true. Кто-нибудь может, пожалуйста, указать мне правильное направление?

Комментарии:

1. Может ли кто-нибудь сказать мне, где я ошибаюсь в приведенном выше коде или мне нужна дополнительная информация?