คุณสมบัติ value ของ select จากอาร์เรย์ใน React
สมมติว่ารายการในรายการเลือกของเรายังคงถูกเก็บไว้ ในอาร์เรย์:
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>;
});
...
}
ใช้แท็กที่สร้างขึ้นมาสร้างรายการ dropdown:
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>;
}