1

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

根据其他用户对数据库的输入,我可能想拒绝字段的输入(用户名已被占用)

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

有没有办法做到这一点?

4

1 回答 1

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);
}
于 2017-05-09T22:10:32.133 回答