React'ta Select İçinde Value Nitelikleri

Şimdi option etiketlerinde value nitelikleri olduğunu varsayalım:

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

Bu durumda, value niteliklerinin varlığı nedeniyle state'e option etiketlerinin metinleri değil, bu niteliklerin değerleri gelecektir. Bunu, seçim sonucunu bir paragrafa yazdırarak doğrulayabiliriz:

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>
      seçiminiz: {value}
    </p>
  </div>;
}

option metnini ve değerini ayırmak kullanışlı olabilir: etiketin metnini istediğimiz gibi değiştirebiliriz, bu sırada seçim sonucu value niteliğinin değerine göre işlenecektir, ki bu değişmeden kalacaktır.

Örneğe bakın:

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' && 'birinci seçeneği seçtiniz'}
      {value === '2' && 'ikinci seçeneği seçtiniz'}
      {value === '3' && 'üçüncü seçeneği seçtiniz'}
    </p>
  </div>;
}

Şimdi, eğer option etiketlerinin metinlerini değiştirirsek, komut dosyasının çalışması bozulmayacaktır - çünkü çalışma value niteliğinin değerine bağlıdır.

Задание 1

Açılır liste kullanarak kullanıcıdan hangi yaş grubuna ait olduğunu seçmesini isteyin: 0 ila 12 yaş, 13 ila 17, 18 ila 25, veya 25 yaş üstü.