schedules [0] .timings [0] .startTime должен иметь тип `string`, но конечное значение было:` null` - получение этого значения, когда поле остается пустым - PullRequest
0 голосов
/ 13 февраля 2020

const validationSchema = () => {

return Yup.lazy(values => {
    return Yup.object().shape({
        name: Yup.string().required("This field is required"),
        streetAddress: Yup.string().required("This field is required"),
        city: Yup.string().required("This field is required"),
        state: Yup.string().required("This field is required"),
        zipCode: Yup.string().required("This field is required"),
        country: Yup.string().required("This field is required"),
        phone: Yup.string().required("This field is required"),
        //   consultingCharge: Yup.string().required("This field is required"),
        schedules: Yup.array().of(
            Yup.object().shape({
                available: Yup.boolean(),
                timings: Yup.array().of(
                    Yup.object().shape({
                        startTime: Yup
                            .string()
                            .when('available', {
                                is: true,
                                then: Yup.string().required('Field is required'),
                                otherwise: Yup.string()
                            }),

                        endTime: Yup
                            .string()
                            .when('available', {
                                is: true,
                                then: Yup.string().required('Field is required'),
                                otherwise: Yup.string()
                            })
                            .test("",  "End time must be after Start time" ,  function(values){
                                return this.parent.startTime < values;
                            }),

                    })
                )
            })
        )
    })
})

}

Столкнувшись со следующей ошибкой: schedule [0] .timings [0] .endTime должен иметь тип string , но окончательное значение было: null. Если «пустое» задано как пустое значение, обязательно пометьте схему как .nullable()

Когда оставьте поле пустым для времени начала и окончания.

1 Ответ

0 голосов
/ 13 февраля 2020

Я не уверен, связано ли это со схемой, я могу представить, что вы используете ее в сочетании с formik или какой-либо другой библиотекой форм? Похоже, ваше состояние, которое проверяется по этой схеме, предоставляет значение null для свойства endTime. Можете ли вы убедиться, что это не проблема самого объекта состояния? Может быть, у вас есть поле ввода, которое пусто, и обработчик onChange устанавливает значение из состояния в null вместо ""? :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...