Динамически добавлять неверные параметры в валидацию 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);
}
Другие вопросы по тегам