我正在设置一个注册表单,它使用React Final Form来处理表单状态。我的浏览器验证工作得很好,但是当我从服务器收到验证错误时,我无法弄清楚如何让它们正确显示。
我研究了文档中包含的提交错误示例。我真的看不出我的代码与该代码有显着差异。似乎只需要返回一个对象,其中键是字段名称,值是要显示的消息。
这是用于 FormonSubmit
道具的方法:
async sendUserRequest(values) {
try {
const data = await axios.post('/register', {
name: `${values.firstName} ${values.lastName}`,
email: values.email,
password: values.password
});
} catch (error) {
let errors = {};
Object.entries(error.response.data.errors).forEach(([field, value]) => {
errors[field] = Array.isArray(value) ? value[0] : value;
});
console.log('errors', errors);
return errors;
}
}
在 catch 代码中,我正在解析我相信它所期望的对象形式的错误。这是我要返回的实际对象:
{
"email": "The email has already been taken."
}
我希望这会在电子邮件字段下显示消息。事实上,它不显示任何内容。
感谢您对此的任何帮助!