Sometimes, we want to identify different inputs with one onChange handler with React.
In this article, we’ll look at how to identify different inputs with one onChange handler with React.
How to identify different inputs with one onChange handler with React?
To identify different inputs with one onChange handler with React, we can create a function that gets the name attribute value of the field and put it in the state object as a property with the value of the same input as the value.
For instance, we write
import React, { useState } from "react";
export default function Exapmle() {
const [userState, setUserState] = useState({
firstName: "",
lastName: "",
});
const handleChange = (e) => {
const value = e.target.value;
setUserState({
...userState,
[e.target.name]: value,
});
};
return (
<form>
<label>
First name
<input
type="text"
name="firstName"
value={userState.firstName}
onChange={handleChange}
/>
</label>
<label>
Last name
<input
type="text"
name="lastName"
value={userState.lastName}
onChange={handleChange}
/>
</label>
</form>
);
}
to add 2 inputs with different name attribute values.
Then we define the handleChange function that gets the input value with e.target.value.
And we call setusetState with an object that has the existing userState properties.
And we add the [e.target.name] property with its value set to value.
e.target.name returns the name attribute value of the input.
Conclusion
To identify different inputs with one onChange handler with React, we can create a function that gets the name attribute value of the field and put it in the state object as a property with the value of the same input as the value.