Vrednosti atributa value u select-u u React-u

Pretpostavimo sada da u tagovima option imamo atribute value:

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

U takvom slučaju, zbog prisustva atributa value, u state će upravo njihove vrednosti biti snimljene, a ne tekstovi tagova option. Možemo se uveriti u ovo, ispisavši rezultat izbora u paragraf:

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>
      vaš izbor: {value}
    </p>
  </div>;
}

Razdvajanje teksta option i njegove vrednosti može biti zgodno: tekst taga možemo menjati kako god želimo, dok će se u našem skriptu rezultat izbora obrađivati prema vrednosti atributa value, koji će ostati nepromenjen.

Pogledajte primer:

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' && 'izabrali ste prvu opciju'}
      {value === '2' && 'izabrali ste drugu opciju'}
      {value === '3' && 'izabrali ste treću opciju'}
    </p>
  </div>;
}

Sada, ako promenimo tekstove tagova option, rad skripte neće biti poremećen - jer je ona vezana za vrednost atributa value.

Задание 1

Pomoću padajuće liste ponudite korisniku da izabere kojoj starosnoj grupi pripada: od 0 do 12 godina, od 13 do 17, od 18 do 25, ili stariji od 25 godina.