IntialValues ​​на дату, не подтвержденную в данный момент в React - PullRequest
0 голосов
/ 13 февраля 2019

Я использую реагировать с Formik для моего приложения.Это моя форма:

return <Formik initialValues={initialValues}
                   onSubmit={this.handleSubmit}
                   render={
                       (props: FormikProps<Spec>) => (
                           <>
                               <div className="col-md-6">
                                   .....
                               </div>
                           </>
                       )
                   }
                   validationSchema={Schema}
    />;

Одно из полей формы disableOn имеет тип Date, и initialValues устанавливается следующим образом:

const initialValues: Spec = {
        .
        .
        disableOn: new Date(),
        .
        .
    };

Форма отображаетзначение как Wed Feb 13 2019 13:29:28 GMT+0530 (India Standard Time).Это все еще хорошо, если форма проверяется правильно перед отправкой.Но при нажатии кнопки отправки форма отправляется без проверки / ошибки проверки.Моя схема использует моменты для проверки даты.Моя схема -

export const Schema = object().shape({
          .
          .
          disableOn: date()
                     .required(ErrorMessages.isRequired)
                     .format("YYYY-MM-DD", ErrorMessages.invalidDate)
                     .typeError(ErrorMessages.invalidDate)
                     .min(new Date(), "Date should be between TOMORROW and 9999-01-01")
                     .max(new Date("9999-01-01"), "Date should be between TOMORROW and 9999-01-01")
                     ,
 });

// See https://github.com/jquense/yup/issues/312
// tslint:disable-next-line:space-before-function-paren
yup.addMethod<DateSchema>(yup.date, "format", function (format: string, message: string) {

     return this.test({
          exclusive: true,
          message,
          name: "format",
          params: {
              format,
          },
          test: function test() {
              const validateOptions: ValidateOptions = this.options;
              const parsed = moment(validateOptions.originalValue, format, true);
              return parsed.isValid();
          },
      });

 });

Пожалуйста, предложите, как мне обработать мой initialValues, чтобы он был проверен перед отправкой.

...