Динамически добавлять неверные параметры в валидацию Joi
У меня есть форма, которая использует Joi для проверки в передней и задней части SPA, используя React/redux, response-validation-mixin & joi-validation-стратегии для проверки в передней части. Схема связана с this.validatorTypes в конструкторе
В зависимости от ввода в базу данных от других пользователей, я могу отклонить ввод поля (имя пользователя уже занято)
После передачи ошибки во внешний интерфейс я хочу, чтобы поле ввода было недействительным (так как оно все еще имеет отклоненное значение). Я хотел бы добавить значение недействительным в схему проверки.
Есть ли способ сделать это?
1 ответ
Трудно дать конкретную помощь по коду, не видя ваш код, но в целом да, возможно обновить схему. Вот полностью надуманный пример:
const keyFields = {
username: Joi.string().required()
};
let formSchema = Joi.object().keys(keyFields);
// in some async req/res handler:
function handleApiResponse(badFormValue) {
// badFormValue === { key: 'username', value: 'bad Value'}
keyFields[badFormValue.key] = keyFields[badFormValue.key].invalid(badFormValue.value);
formSchema = Joi.object().keys(keyFields);
}