Attributs value d'un sélecteur à partir d'un tableau dans React
Supposons à nouveau que les éléments de la liste soient stockés dans un tableau :
function App() {
const texts = ['text1', 'text2', 'text3', 'text4'];
const [value, setValue] = useState('');
...
}
Créons les balises option à l'aide de ce tableau
en leur ajoutant comme attributs
value les valeurs des éléments du tableau :
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>;
});
...
}
Utilisons les balises créées pour former une liste déroulante :
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
</div>;
Affichons dans un paragraphe le numéro de l'élément sélectionné :
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
votre choix : {value}
</p>
</div>;
Maintenant, affichons le texte de l'élément sélectionné, en utilisant son numéro et le tableau des textes :
return <div>
<select value={value} onChange={event => setValue(event.target.value)}>
{options}
</select>
<p>
votre choix : {texts[value]}
</p>
</div>;
Rassemblons le tout et obtenons le code suivant :
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>
votre choix : {texts[value]}
</p>
</div>;
}