Value atribuudid Reacti selektis
Oletame nüüd, et meil on siltides option
atribuudid value:
function App() {
return <div>
<select>
<option value="1">text1</option>
<option value="2">text2</option>
<option value="3">text3</option>
</select>
</div>;
}
Sellisel juhul, tänu atribuutidele value,
lähevad staatesse just nende väärtused,
mitte siltide option tekstid. Selles saab veenduda,
väljastades valiku tulemi lõiguks:
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>
sinu valik: {value}
</p>
</div>;
}
Option teksti ja selle väärtuse eraldamine
võib olla mugav: sildi teksti saame muuta
meie soovil, samal ajal meie skriptis
töödeldakse valiku tulemust
vastavalt atribuudi value väärtusele, mis jääb
muutumatuks.
Vaadake näidet:
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' && 'sa valisid esimese punkti'}
{value === '2' && 'sa valisid teise punkti'}
{value === '3' && 'sa valisid kolmanda punkti'}
</p>
</div>;
}
Nüüd, kui me muudame siltide option tekste,
siis skripti tööd ei katkestata - sest see on
seotud atribuudi value väärtusega.
Kasutades rippmenüüd, pakuge kasutajal
valida, millisesse vanusegruppi ta kuulub:
0 kuni 12 aastat, 13
kuni 17, 18 kuni 25,
või üle 25 aasta.