← React Beginner Questions - Set 4 Q40

What is a controlled component in React?

React Beginner Questions - Set 4

The input's value lives in React state, so React can read it, validate it and reset it at any moment.

Example

import { useState } from 'react';

export default function Coupon() {
  const [code, setCode] = useState('');
  const valid = /^[A-Z0-9]{6}$/.test(code);

  return (
    <form onSubmit={e => { e.preventDefault(); console.log('apply', code); }}>
      <input
        value={code}
        onChange={e => setCode(e.target.value.toUpperCase())}
        placeholder="ABC123"
      />
      <button type="submit" disabled={!valid}>Apply</button>
      <button type="button" onClick={() => setCode('')}>Reset</button>
      {!valid && code.length > 0 && <p>Six characters, letters and digits.</p>}
    </form>
  );
}

What to notice

← Back to the question list