Value atribūti select elementā React
Pieņemsim, ka tagad mūsu option tagos
ir value atribūti:
function App() {
return <div>
<select>
<option value="1">text1</option>
<option value="2">text2</option>
<option value="3">text3</option>
</select>
</div>;
}
Šādā gadījumā, value atribūtu klātbūtnes dēļ,
state nonāks tieši to vērtības,
nevis option tagu teksti. To var pārbaudīt,
izvadot izvēles rezultātu rindkopā:
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>
jūsu izvēle: {value}
</p>
</div>;
}
option teksta un tā vērtības atdalīšana
var būt ērta: mēs varam mainīt tagu tekstu
kā mums ienāk prātā, tajā pašā laikā mūsu skriptā
izvēles rezultāts tiks apstrādāts pēc
value atribūta vērtības, kas paliks
nemainīga.
Skatiet piemēru:
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' && 'jūs izvēlējāties pirmo punktu'}
{value === '2' && 'jūs izvēlējāties otro punktu'}
{value === '3' && 'jūs izvēlējāties trešo punktu'}
</p>
</div>;
}
Tagad, ja mēs mainīsim option tagu tekstus,
skripta darbība netiks traucēta - jo tā
ir piesaistīta value atribūta vērtībai.
Izmantojot nolaižamo sarakstu, piedāvājiet lietotājam
izvēlēties, kurai vecuma grupai viņš pieder:
no 0 līdz 12 gadiem, no 13
līdz 17, no 18 līdz 25,
vai vecāks par 25 gadiem.