Formik - как получить доступ к сообщению об ошибке внутри массива с помощью проверки Yup?

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

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

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

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

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


person Marcello Antunes    schedule 11.06.2019    source источник


Ответы (1)


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

Ex.

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

person H.Hinn    schedule 19.06.2019