قوائم رد الفعل


في 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، فإنه سيعمل ولكن ستتلقى تحذيرًا بأنه لا يوجد "مفتاح" متوفر لعناصر القائمة.


w3schools CERTIFIED . 2022

الحصول على شهادة!

أكمل وحدات React ، ونفّذ التمارين ، وخذ الامتحان واحصل على شهادة w3schools !!

95 دولارًا ENROLL

مفاتيح

تسمح المفاتيح لـ 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'));


اختبر نفسك مع التمارين

ممارسه الرياضه:

أضف السمة التي تسمح لـ React بتتبع العناصر في القوائم.

function GroceryList() {
  const items = [
    {id: 1, name: 'bread'},
    {id: 2, name: 'milk'},
    {id: 3, name: 'eggs'}
  ];

  return (
    <>
      <h1>Grocery List</h1>
      <ul>
        {items.map((item) => <li ={item.id}>{item.name}</li>)}
      </ul>
    </>
  );
}

ReactDOM.render(<GroceryList />, document.getElementById('root'));