Reactда массивдан олинган селектнинг value атрибутлари
Фарз қилайлик, бизнинг рўйхат элементларимиз яна массивда сақлансин:
function App() {
const texts = ['text1', 'text2', 'text3', 'text4'];
const [value, setValue] = useState('');
...
}
Келинг, ушбу массив ёрдамида
option тегларини ҳосил қилайлик, уларга атрибут сифатида
value массив элементларининг қийматларини берган ҳолда:
function App() {
const texts = ['text1', 'text2', 'text3', 'text4'];
const [value, setValue] = useState('');
const options = texts.map((text, index) => {
return <option key={index} value={index}>{text}</option>;
});
...
}
Ҳосил қилинган теглардан фойдаланиб, тушувчан рўйхат яратайлик:
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
</div>;
Танланган элементнинг рақамини абзацда чиқарайлик:
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
Сизнинг танлангиз: {value}
</p>
</div>;
Энди эса, унинг рақами ва матнлар массивидан фойдаланиб, танланган элементнинг матнини чиқарайлик:
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
Сизнинг танлангиз: {texts[value]}
</p>
</div>;
Ҳаммасини бирлаштириб, куйидаги кодни ҳосил қиламиз:
function App() {
const texts = ['text1', 'text2', 'text3', 'text4'];
const [value, setValue] = useState('');
const options = texts.map((text, index) => {
return <option key={index} value={index}>{text}</option>;
});
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
Сизнинг танлангиз: {texts[value]}
</p>
</div>;
}