Atributele value în select în React
Să presupunem că acum în tag-urile option
avem atributele value:
function App() {
return <div>
<select>
<option value="1">text1</option>
<option value="2">text2</option>
<option value="3">text3</option>
</select>
</div>;
}
În acest caz, datorită prezenței atributelor value,
în starea componentei vor intra valorile acestora,
și nu textele din tag-urile option. Putem verifica
acest lucru, afișând rezultatul selecției într-un paragraf:
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>
alegerea dumneavoastră: {value}
</p>
</div>;
}
Separarea textului option de valoarea sa
poate fi convenabilă: putem schimba textul tag-ului
după cum dorim, în timp ce în scriptul nostru
rezultatul selecției va fi procesat în funcție de
valoarea atributului value, care va rămâne
neschimbată.
Uitați-vă la exemplu:
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' && 'ați ales prima opțiune'}
{value === '2' && 'ați ales a doua opțiune'}
{value === '3' && 'ați ales a treia opțiune'}
</p>
</div>;
}
Acum, dacă vom schimba textele din tag-urile option,
funcționarea scriptului nu se va perturba - deoarece ea
este legată de valoarea atributului value.
Folosind lista derulantă, sugerați utilizatorului
să selecteze cărei grupe de vârstă îi aparține:
de la 0 la 12 ani, de la 13
la 17, de la 18 la 25,
sau peste 25 de ani.