Answer the question
In order to leave comments, you need to log in
The useState function returns the old value, how can I fix it?
const SignUpContainer = () => {
const [values, setValues] = useState({
email: '',
login: '',
password: '',
password2: '',
});
const [errors, setErrors] = useState({});
const handleChange = (e) => {
const { name, value } = e.target;
setValues({ ...values, [name]: value });
};
const handleSubmit = (e) => {
e.preventDefault();
setErrors(validateSignUp(values));
if (Object.keys(errors).length === 0) {
console.log('Ошибок нет');
} else {
console.log('Ошибки есть');
}
};
return (
<FormSignUp
handleChange={handleChange}
handleSubmit={handleSubmit}
values={values}
errors={errors}
/>
);
};
export default SignUpContainer;
Answer the question
In order to leave comments, you need to log in
const SignUpContainer = () => {
const [values, setValues] = useState({
email: '',
login: '',
password: '',
password2: '',
});
const [errors, setErrors] = useState({});
const handleChange = (e) => {
const { name, value } = e.target;
setValues({ ...values, [name]: value });
};
const isValid = () => {
const errors = validateSignUp(values);
if (Object.keys(errors).length > 0) {
setErrors(errors);
return false;
}
return true;
};
const handleSubmit = (e) => {
e.preventDefault();
if (isValid()) {
setErrors({});
console.log('Ошибок нет');
} else {
console.log('Ошибки есть');
}
};
return (
<FormSignUp
handleChange={handleChange}
handleSubmit={handleSubmit}
values={values}
errors={errors}
/>
);
};
export default SignUpContainer;
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question