我有一个使用Joi在SPA的前端和后端进行验证的表单,使用React / redux,react-validation-mixin& joi-validation-strategy用于前面的验证。 Schema连接到构造函数
中的this.validatorTypes根据其他用户对数据库的输入,我可能要拒绝输入字段(已经使用了用户名)
将错误传递给前端后,我希望输入字段无效(因为它仍然具有被拒绝的值)。我想将该值添加为验证方案无效。
有办法做到这一点吗?
答案 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);
}