Reactjs React useState不更新提交表单上的状态
设置状态为异步操作。您正在设置状态,然后检查其值,该值将始终返回旧值。这就是它在第二次返回true的原因 按如下方式重构代码,然后再次检查Reactjs React useState不更新提交表单上的状态,reactjs,bootstrap-4,next.js,Reactjs,Bootstrap 4,Next.js,设置状态为异步操作。您正在设置状态,然后检查其值,该值将始终返回旧值。这就是它在第二次返回true的原因 按如下方式重构代码,然后再次检查 if (inputChecker()) { console.log(user); } } 设置状态为异步操作。您正在设置状态,然后检查其值,该值将始终返回旧值。这就是它第二次返回true的原因。请你告诉我怎么做,因为我仍然没有得到它…@MazharHaqueI已经添加了代码作为答案。请检查一
if (inputChecker()) {
console.log(user);
}
}
设置状态为异步操作。您正在设置状态,然后检查其值,该值将始终返回旧值。这就是它第二次返回true的原因。请你告诉我怎么做,因为我仍然没有得到它…@MazharHaqueI已经添加了代码作为答案。请检查一下。非常感谢你的帮助@马扎尔哈克
if (inputChecker()) {
console.log(user);
}
}
const inputChecker = () => {
let isFNameValid = true;
let isLNameValid = true;
let isUsernameValid = true;
let isPasswordValid = true;
let isEmailValid = true;
if(user.fName === '' || user.fName.length < 3) {
setfNameError('invalid');
isFNameValid = false;
}
else {
setfNameError('valid');
isFNameValid = true;
}
if(user.lName === '' || user.lName.length < 3) {
setlNameError('invalid');
isLNameValid = false;
}
else {
setlNameError('valid');
isLNameValid = true;
}
if(user.username === '' || user.username.length < 5) {
setusernameError('invalid');
isUsernameValid = false;
}
else {
setusernameError('valid');
isUsernameValid = true;
}
if(user.password === '' || user.password.length < 6) {
setpasswordError('invalid');
isPasswordValid = false;
}
else {
setpasswordError('valid');
isPasswordValid = true;
}
if(validateEmail(user.email)) {
setemailError('valid');
isEmailValid = true;
}
else {
setemailError('invalid');
isEmailValid = false;
}
if (isFNameValid && isLNameValid && isUsernameValid && isPasswordValid && isEmailValid) {
return true;
} else
return false;
}