React да селектларда value атрибутлари
Энди бизда option тегларида
value атрибутлари бор деб фараз қилайлик:
function App() {
return <div>
<select>
<option value="1">text1</option>
<option value="2">text2</option>
<option value="3">text3</option>
</select>
</div>;
}
Бундай ҳолда, value атрибутлари мавжудлиги сабабли,
стейтга айнан уларнинг қийматлари киритилади,
option тегларининг матнлари эмас. Буни
танлов натижасини абзацга чиқариб кўриш орқали
исботлаш мумкин:
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}
</p>
</div>;
}
option матни ва унинг қийматини ажратиш
қулай бўлиши мумкин: тег матнини биз хоҳлагандек
ўзгартиришимиз мумкин, шу билан бирга бизнинг скриптимизда
танлов натижаси value атрибутининг қиймати
буйича ишлов берилади, уз эса ўзгармас қолади.
Мисолга қара:
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' && 'Сиз биринчи пунктни танлангиз'}
{value === '2' && 'Сиз иккинчи пунктни танлангиз'}
{value === '3' && 'Сиз учинчи пунктни танлангиз'}
</p>
</div>;
}
Энди, агар биз option тегларининг матнларини ўзгартирсак,
скриптнинг иши бузилмайди - чунки у
value атрибутининг қийматига богланган.
Тўкиб чиқарувчи рўйхат ёрдамида фойдаланувчига
ўзи қай ёш гуруҳига мансублигини танлашни таклиф қилинг:
0 дан 12 ёшгача, 13
дан 17 гача, 18 дан 25 гача,
ёки 25 ёшдан катта.