动态添加无效参数到Joi验证

时间:2017-03-24 13:22:07

标签: reactjs joi

我有一个使用Joi在SPA的前端和后端进行验证的表单,使用React / redux,react-validation-mixin& joi-validation-strategy用于前面的验证。 Schema连接到构造函数

中的this.validatorTypes

根据其他用户对数据库的输入,我可能要拒绝输入字段(已经使用了用户名)

将错误传递给前端后,我希望输入字段无效(因为它仍然具有被拒绝的值)。我想将该值添加为验证方案无效。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分: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);
}