I have this setup for the form
const [backendErrors, setBackendErrors] = useState({
name: '',
email: '',
password: '',
})
const form = useForm({
initialValues: {
name: '',
email: '',
password: '',
},
validate: {
name: (value) => {
if (value === '') return 'Name is required'
if (backendErrors.name) return backendErrors.name;
},
email: (value) => {
if (/^\S+@\S+$/.test(value) === false) return 'Invalid email';
if (backendErrors.email) return backendErrors.email;
},
password: (value) => {
if (value === '') return 'Password is required';
if (backendErrors.password) return backendErrors.password;
}
},
});
On submit I have something similar to this but the errors are coming from backend, When I call setBackendErrors I also want to show them immediately but that doesn't seem to happen.
setBackendErrors({
name: 'Name must be 2 characters',
email: 'Email is alredy taken',
password: '',
})
form.validate()