Value atribūti select elementā React

Pieņemsim, ka tagad mūsu option tagos ir value atribūti:

jsxfunction App() {
  return <div>
    <select>
      <option value="1">text1</option>
      <option value="2">text2</option>
      <option value="3">text3</option>
    </select>
  </div>;
}

Šādā gadījumā, value atribūtu klātbūtnes dēļ, state nonāks tieši to vērtības, nevis option tagu teksti. To var pārbaudīt, izvadot izvēles rezultātu rindkopā:

jsxfunction App() {
  const [value, setValue] = useState('');
  
  return <div>
    <select value={value} onChange={(event) => setValue(event.target.value)}>
      <option value="1">text1</option>
      <option value="2">text2</option>
      <option value="3">text3</option>
    </select>
    <p>
      jūsu izvēle: {value}
    </p>
  </div>;
}

option teksta un tā vērtības atdalīšana var būt ērta: mēs varam mainīt tagu tekstu kā mums ienāk prātā, tajā pašā laikā mūsu skriptā izvēles rezultāts tiks apstrādāts pēc value atribūta vērtības, kas paliks nemainīga.

Skatiet piemēru:

jsxfunction App() {
  const [value, setValue] = useState('');
  
  return <div>
    <select value={value} onChange={event => setValue(event.target.value)}>
      <option value="1">text1</option>
      <option value="2">text2</option>
      <option value="3">text3</option>
    </select>
    <p>
      {value === '1' && 'jūs izvēlējāties pirmo punktu'}
      {value === '2' && 'jūs izvēlējāties otro punktu'}
      {value === '3' && 'jūs izvēlējāties trešo punktu'}
    </p>
  </div>;
}

Tagad, ja mēs mainīsim option tagu tekstus, skripta darbība netiks traucēta - jo tā ir piesaistīta value atribūta vērtībai.

Задание 1

Izmantojot nolaižamo sarakstu, piedāvājiet lietotājam izvēlēties, kurai vecuma grupai viņš pieder: no 0 līdz 12 gadiem, no 13 līdz 17, no 18 līdz 25, vai vecāks par 25 gadiem.