Atribúty value selectu z poľa v Reacte
Nech sú opäť položky zoznamu uložené v poli:
function App() {
const texts = ['text1', 'text2', 'text3', 'text4'];
const [value, setValue] = useState('');
...
}
Vytvorme pomocou tohto poľa
značky option, pričom im ako atribúty
value pridáme hodnoty prvkov poľa:
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>;
});
...
}
Pomocou vytvorených značok vytvorme rozbaľovací zoznam:
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
</div>;
Vypíšme do odseku číslo vybranej položky:
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
váš výber: {value}
</p>
</div>;
A teraz vypíšme text vybranej položky, použitím jeho čísla a poľa s textami:
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
váš výber: {texts[value]}
</p>
</div>;
Zhromaždíme všetko dokopy a získame nasledujúci kód:
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>
váš výber: {texts[value]}
</p>
</div>;
}