I'm trying to set validPassword
and validFormData
values to false whenever a form is submited and the values are empty. I'm calling this function on submit but it's only changing the last property in my useState
const [validPassword, setValidPassword] = useState({
password: true,
confirmPassword: true
})
const [validFormData, setValidFormData] = useState({
email: true,
name: true,
lastName: true,
phone: true,
})
const signupAction = (e) => {
e.preventDefault()
if (formData.email === "" || formData.name === "" || formData.lastName === "" || formData.phone === "" || formData.password === "" || formData.confirmPassword === "") {
for (let p in formData) {
if (formData[p] === "") {
if (p === "password" || p === "confirmPassword") {
setValidPassword({ ...validPassword, [p]: false })
} else {
setValidFormData({ ...validFormData, [p]: false })
}
}
}
} else {
console.log('success')
}
/* signup(formData, history) */
}
What I get from this is:
validPassword = {
password: true,
confirmPassword: false
}
validFormData = {
email: true,
name: true,
lastName: true,
phone: false,
}