React'ta Select İçinde Value Nitelikleri
Şimdi option etiketlerinde
value nitelikleri olduğunu varsayalım:
function 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:
function 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:
function 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.
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ü.