Я создал пользовательскую проверку Yup, используя .test()
.
// users is an array of strings
user: Yup.string().test(
"user-check",
"At lease one user should be added",
() => users.length > 0
)
Цель состоит в том, чтобы проверить форму, когда добавлен хотя бы один пользователь. Поле ввода позволяет вам ввести имя пользователя (любое строковое значение), а затем нажать кнопку, чтобы добавить его в список.
Проверка работает хорошо после добавления 2-го имени пользователя (или добавления 1-го, а затем начала печатать на поле). Я делюсь этой живой демонстрацией: https://codesandbox.io/s/hopeful-goldwasser-shpbk
Шаги для воспроизведения
- Нажмите на текстовое поле.
- Введите имя пользователя.
- Нажмите красную кнопку.
Ожидается
- Форма должна быть действительной.
Что вы получите
Есть какие-либо отзывы об этом странном поведении?
Примечание
Я не уверен, что это является источником проблемы.
При первом добавлении пользователя проверка вызывается 2 раза: 1-й раз с пустым массивом users
, а затем с правильным значением users
(это пользователь, которого вы добавили)!