我正在将表单数据发布到Mongo。如果没有错误,则应重置表格并显示成功消息。但是现在发生的是,当出现验证错误时,将重置表格并显示成功消息。
onSubmit={async (values, { setSubmitting, resetForm }) => {
try {
const response = await fetch(//code here);
const responseData = await response.json();
if (!response.okay) {
setErrors(responseData);
}
setSuccess(true);
resetForm();
} catch(err) {
console.log(err);
{
}}
答案 0 :(得分:1)
您的问题是一个简单的疏忽。即使表单失败,您也正在运行setSuccess
。只需将这两个函数放在else
中即可。
此外,获取API中不存在response.okay
,因此您应该使用response.ok
来获得预期的结果。
onSubmit={async (values, { setSubmitting, resetForm }) => {
try {
const response = await fetch(//code here);
const responseData = await response.json();
if (!response.ok) {
setErrors(responseData);
} else {
setSuccess(true);
resetForm();
}
} catch(err) {
console.log(err);
}
}}
答案 1 :(得分:0)
应该是成功条件的另一个。
if (!response.okay) {
setErrors(responseData);
}
else{
setSuccess(true);
resetForm();
}