错误状态未在第一次单击时更新



我正在制作一个更新地址的表格。当用户单击"提交"按钮时,表单不会被提交,但在单击后,错误会被正确更新,表单提交也很好。以下是我与合作的内容

const [errors, setErrors] = React.useState({
firstName: '',
lastName: '',
streetAddress: '',
streetAddress2: '',
city: '',
zipCode: ''
});

const validateRequiredFields = () => {
let inputError = {};
Object.keys(user).forEach(
(key) => {
inputError = { ...inputError, ...RequiredValidation(user, key) };
}
);

setErrors({ ...errors, ...inputError });
Validation返回inputError,inputError接受值,如果没有错误,则设置为null而不是空字符串。当我对此进行console.log时,它会返回正确的格式。此外,如果存在错误,则第一次单击时会正确更新错误。经过研究,我发现最近的状态并不总是牵强的,我认为这是我的问题;我查看的其他线程推荐了这样的东西,尽管我不知道我是否应该这样设置。

setErrors({ ...errors, ...inputError }, () => {
setErrors({ ...errors, ...inputError });
});

使用

setErrors((prevErrors(=>({…prevErrors,…inputError}((;

最新更新