I'm trying to validate a form before submting it,and I created an object of possible errors, but when try to change the value of each key it behaves weirdly...
const inialState = {
name: "",
email: "",
message: "",
};
const errors = {
name: false,
email: false,
message: false,
};
const Contact = () => {
const [values, setValues] = useState(inialState);
const [error, setError] = useState(errors);
const handleSubmit = (e) => {
e.preventDefault();
if (!validateSubmit()) {
return;
}
};
const handleChange = (e) =>
setValues({ ...values, [e.target.name]: e.target.value });
function validateSubmit(e) {
let response = true;
if (!values.name) {
setError({ ...error, name: true });
response = false;
}
if (!values.email) {
setError({ ...error, email: true });
response = false;
}
if (!values.message) {
setError({ ...error, [errors.message]: true });// I also tried this way =(
response = false;
}
console.log(error);
return response;
}
...
return(
<form onSubmit={handleSubmit}> //its a simple button type="submit"
...
The validateSubmit function is called by the Submit button.