How to clear empty form input state in React before sending to server?
For example, in the form below, if user.name
is not filled in then the object sent to the server is:
{ age: "19" }
Note: I can of course delete the empty properties manually in submitHandler
, but is there any other way that doesn't require me to manually delete?
const UserAdd = () => {
const [user, setUser] = useState({
name: "",
age: ""
});
const inputChangeHandler = (e) => {
setUser({ ...user, [e.target.name]: e.target.value })
}
const submitHandler = (e) => {
e.preventDefault();
// Start Solution
const userWithoutEmptyProperties = {};
for(const key in user) {
if(user[key]) {
userWithoutEmptyProperties[key] = user[key];
}
}
// End Solution
// send "userWithoutEmptyProperties" to server
}
return (
<form onSubmit={submitHandler} >
<input type="text" name="name" onChange={inputChangeHandler} />
<input type="text" name="age" onChange={inputChangeHandler} />
<button type="submit">Add</button>
</form>
)
}