Once button clicked the fields are validated and errors are assigned to state variable.
But when state is updated inside onSubmitClick the render/view isn't refreshed to show the errors.
I have cross checked TextField component by doing a log of error fields but error doesn't seem to show up..
import React, { useState } from "react";
const Register = () => {
const [user, setUser] = useState({
name: "",
email: "",
password: "",
});
const setData = (type) => e => {
user[type] = e.target.value;
setUser(user);
};
const onSubmitClick = e => {
// Check if fields are empty
if (!user.name) {
user.nameError = "Name field cannot be left blank !!";
}
if (!user.email) {
user.emailError = "Email field cannot be left blank !!";
}
if (!user.password) {
user.passwordError = "Password field cannot be left blank !!";
}
// Setting the error here
setUser(user);
};
return (
<div>
<TextField value={user.name} error={user.nameError} label="Name" onChange={setData("name")} />
<TextField value={user.email} error={user.emailError} label="Email" onChange={setData("email")} />
<TextField value={user.password} error={user.passwordError} abel="Password" onChange={setData("password")} />
<Button content="REGISTER" onClick={onSubmitClick} />
</div>
);
};
export default Register;
So basically on submit if fields have errors i need to show up the errors.