Files
30-seconds-of-code/react/snippets/controlled-input.md
Angelos Chalaris 462322f885 Prepare for merge
2023-05-01 22:56:37 +03:00

1.1 KiB

title, type, tags, cover, dateModified
title type tags cover dateModified
Controlled input field snippet
components
input
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 value passed down from the parent as the controlled input field's value.
  • Use the onChange event to fire the onValueChange callback and send the new value to the parent.
  • The parent must update the input field's value prop 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 />
);