1.1 KiB
1.1 KiB
title, type, tags, cover, dateModified
| title | type | tags | cover | dateModified | ||
|---|---|---|---|---|---|---|
| Controlled input field | snippet |
|
digital-nomad-5 | 2020-11-03T21:08:39+02:00 |
Renders a controlled <input> element that uses a callback function to inform its parent about value updates.
- Use the
valuepassed down from the parent as the controlled input field's value. - Use the
onChangeevent to fire theonValueChangecallback and send the new value to the parent. - The parent must update the input field's
valueprop in order for its value to change on user input.
const ControlledInput = ({ value, onValueChange, ...rest }) => {
return (
<input
value={value}
onChange={({ target: { value } }) => onValueChange(value)}
{...rest}
/>
);
};
const Form = () => {
const [value, setValue] = React.useState('');
return (
<ControlledInput
type="text"
placeholder="Insert some text here..."
value={value}
onValueChange={setValue}
/>
);
};
ReactDOM.createRoot(document.getElementById('root')).render(
<Form />
);