Динамическое добавление недопустимых параметров в проверку Joi

У меня есть форма, которая использует Joi для проверки в передней и задней части SPA, используя React / redux, react-validation-mixin и joi-validation-strategy для проверки спереди. Схема связана с this.validatorTypes в конструкторе

В зависимости от ввода в базу данных от других пользователей я могу отклонить ввод поля (имя пользователя уже занято)

После передачи ошибки во внешний интерфейс я хочу, чтобы поле ввода было недействительным (поскольку оно все еще имеет отклоненное значение). Я хотел бы добавить в схему проверки значение как недействительное.

Есть ли способ сделать это?


person primavera133    schedule 24.03.2017    source источник


Ответы (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);
}
person Wes Tyler    schedule 09.05.2017