Код: Выделить всё
const loginYupSchemaSpam: Yup.AnySchema = Yup.object().shape({
email: Yup.string()
.required()
.strict()
.email()
.max(320),
password: Yup.string()
.required()
.strict()
.min(8)
.max(18)
.matches(
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])/
)
.trim()
.matches(
/^(?!.* )/
)
})
.noUnknown(true)
.strict()
Поэтому я подумал, что нет необходимости менять или создавать дополнительную схему, если я использую {stripUnknown: true, как в следующем коде:
Код: Выделить всё
if (!loginYupSchemaSpam.isValidSync(credentials, { stripUnknown: true })) {
errorTracker = true
return setError('Email or password is wrong')
}
Но я был неправ, я все равно получаю сообщение об ошибке о наличии неизвестных свойств.
Я уже пытался удалить .strict(), потому что я подумал, может быть, он не может ничего удалить, потому что Strip не позволяет изменять проверенный объект в любом случае.
Мне показалось бы очень странным, если бы я не чего-то не упустил, потому что я чувствую, что переданные параметры должны иметь более высокий приоритет, чем сама схема, иначе зачем вообще разрешать параметры в первую очередь.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ating-with
Мобильная версия