รายการตอบโต้
ใน React คุณจะแสดงรายการที่มีการวนซ้ำบางประเภท
โดยทั่วไปวิธีการอาร์เรย์ JavaScript map()
เป็นวิธีที่ต้องการ
หากคุณต้องการทบทวนmap()
วิธีการ ตรวจสอบ
ส่วนES6
ตัวอย่าง:
มาสร้างรถทุกคันจากโรงรถของเรากันเถอะ:
function Car(props) {
return <li>I am a { props.brand }</li>;
}
function Garage() {
const cars = ['Ford', 'BMW', 'Audi'];
return (
<>
<h1>Who lives in my garage?</h1>
<ul>
{cars.map((car) => <Car brand={car} />)}
</ul>
</>
);
}
ReactDOM.render(<Garage />, document.getElementById('root'));
เมื่อคุณเรียกใช้รหัสนี้ใน ของคุณ รหัสcreate-react-app
จะทำงาน แต่คุณจะได้รับคำเตือนว่าไม่มี "คีย์" สำหรับรายการ
กุญแจ
คีย์อนุญาตให้ React ติดตามองค์ประกอบ ด้วยวิธีนี้ หากมีการอัปเดตหรือลบรายการ เฉพาะรายการนั้นเท่านั้นที่จะถูกแสดงผลใหม่ แทนที่จะเป็นรายการทั้งหมด
คีย์ต้องไม่ซ้ำกันสำหรับพี่น้องแต่ละคน แต่สามารถทำซ้ำได้ทั่วโลก
โดยทั่วไป คีย์ควรเป็นรหัสเฉพาะที่กำหนดให้กับแต่ละรายการ วิธีสุดท้าย คุณสามารถใช้ดัชนีอาร์เรย์เป็นคีย์ได้
ตัวอย่าง:
มาปรับโครงสร้างตัวอย่างก่อนหน้าของเราเพื่อรวมคีย์:
function Car(props) {
return <li>I am a { props.brand }</li>;
}
function Garage() {
const cars = [
{id: 1, brand: 'Ford'},
{id: 2, brand: 'BMW'},
{id: 3, brand: 'Audi'}
];
return (
<>
<h1>Who lives in my garage?</h1>
<ul>
{cars.map((car) => <Car key={car.id} brand={car.brand} />)}
</ul>
</>
);
}
ReactDOM.render(<Garage />, document.getElementById('root'));