Formik - как получить доступ к сообщению об ошибке внутри массива, используя проверку Yup? - PullRequest
0 голосов
/ 11 июня 2019

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

Я создал validationSchema, но когда я пытаюсь передать индекс массива на пропуском ошибок Formik, я получаю ошибку.

Вот песочница с абстракцией всей формы.В этом примере это работает, только если я комментирую второе поле метки, но в обычной ситуации это должно быть динамическим:

https://codesandbox.io/s/0ov0vxmom0?fontsize=14

Я понял, что это происходит потому, что, когда формаотображается, объект ошибки по умолчанию пуст.Поэтому, если я передам первый индекс [0], когда объект получит ошибку, Formik сможет получить к нему доступ.Например, если я получу ошибку в следующем поле, Formik попытается получить доступ к ошибке в индексе [1], но объект ошибки будет иметь только индекс [0].Я должен передать именно позицию ошибки, потому что моя форма может иметь несколько вопросов.Любые советы?

1 Ответ

0 голосов
/ 19 июня 2019

Если вы проверяете на основе типа объекта, вы можете добавить .typeError(msg) в конце каждой схемы.

Ex.

 Yub.object().typeError('Invalid Object');
 Yub.array().typeError('Invalid Array');

...