У меня проблемы с проверками Yup и использованием метода .when () с условием .matches () regex.
Я не Конечно, если эта реализация верна, в документации Yups упоминается, что функцию matcher можно использовать с методом .when (), но я не могу найти никаких примеров, и я сталкиваюсь с этой ошибкой при реализации кода следующим образом:
Error: Cyclic dependency, node was:"description"
Вот мой код, я пытаюсь настроить максимальную длину в зависимости от того, включен ли da sh во входную строку:
export default Yup.object().shape({
description: Yup.string()
.matches(
/^[a-zA-Z0-9-]*$/,
'Description can only contain letters, numbers and dashes'
)
.when('description', {
is: (val) => val == /^[a-zA-Z0-9-]*$/,
then: Yup.string().max(15, 'max length is 15'), // maxlength 15
otherwise: Yup.string().max(14, 'max length is 14') // maxlength 14
}),
});
Вот ссылка на документация, которую я просматривал:
https://github.com/jquense/yup
Я пытаюсь выяснить, как настроить мой код так, чтобы ошибка исчезла, и проверка правильности работает как задумано. Если во входной строке, которую пользователь вводит, есть da sh, максимальная длина должна быть 15, в противном случае она должна быть 14.