Objects in State
RE · useStatesyntax
setState(prev => ({ ...prev, key: newValue }));example
function ProfileEditor() {
const [profile, setProfile] = useState({
firstName: '',
lastName: '',
bio: '',
});
function handleChange(field, value) {
setProfile(prev => ({
...prev,
[field]: value,
}));
}
return (
<>
<input
value={profile.firstName}
onChange={e => handleChange('firstName', e.target.value)}
placeholder="First name"
/>
<input
value={profile.lastName}
onChange={e => handleChange('lastName', e.target.value)}
placeholder="Last name"
/>
</>
);
}Note Always spread the previous object to create a new copy. Directly mutating state (profile.firstName = 'X') will NOT trigger a re-render because React compares by reference.