Да не проверяет флажок, когда пользователь нажимает кнопку отправки - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть следующая конфигурация Yup в моем приложении React:

 const schema = yup.object().shape({
        email: yup.string()
            .email('E-mail is not valid!')
            .required('E-mail is required!'),
        password: yup.string()
            .min(6, 'Password has to be longer than 6 characters!')
            .required('Password is required!'),
        tandc: yup.boolean()
            .oneOf([true], "You must accept the terms and conditions")
    })

Моя форма выглядит следующим образом (с помощью Formik):

 <Form>
                    <div className="form-group">
                        <label >Email
                        <Field type="email" name="email" className="form-control" />
                        </label>
                        <ErrorMessage name="email" component="div" className="invalid-feedback" />
                    </div>
                    <div className="form-group">
                        <label >Password
                        <Field type="password" name="password" className="form-control"  />
                        </label>
                        <ErrorMessage name="password" component="div" className="invalid-feedback" />
                    </div>
                    <div className="form-group">

                        <Field type="checkbox" name="tandc" className="form-check-input"  id="tandc" />
                        <ErrorMessage name="tandc" component="div" className="invalid-feedback" />
                        <label htmlFor="tandc" >I agree to the Terms and Conditions
                        </label>
                    </div>

                    <PrimaryButton label="Login" disabled={isSubmitting} type="submit">
                        Submit
                    </PrimaryButton>
                </Form>

Если пользователь нажимает кнопку отправить в форме , Yup проверяет поле электронной почты и пароль, но игнорирует поле флажка:

enter image description here

Я могу только заставить проверку флажка работать, если я сначала проверю, а затем снять отметки с условий.

Как мне заставить его работать так, чтобы он отображал сообщение об ошибке, когда пользователь нажимает только кнопку отправки?

1 Ответ

1 голос
/ 09 февраля 2020

В соответствии с этой проблемой в репозитории Yup,

, если вы используете его с formik, убедитесь, что вы установили initialValues = {termsOfService: false}

...