انتقل إلى محتوى الدرس

Passing vs Calling Handlers تمرير الدالة مقابل استدعائها

تعلّم كيفية ربط دوال معالجة الأحداث في صياغة JSX، وتفادي خطأ استدعاء الدالة أثناء التصيير، وتمرير المعاملات بالدوال السهمية، وبناء خصائص أحداث مخصصة.
3 صفوف تعليمية
ReactJS
1 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يتمثل الخطأ الأكثر شيوعاً عند التعامل مع الأحداث في وضع قوسي الاستدعاء بجانب اسم الدالة داخل JSX. كتابة onClick={handleReset} تمرر مرجع الدالة ذاته لتحتفظ به React وتستدعيه عند النقر فقط، أما كتابة onClick={handleReset()} فتشغّل الدالة handleReset() فوراً لحظة رسم المكون ثم تسلّم ناتجها الفارغ undefined للزر فلا يستجيب لأي نقرة لاحقة.

تنطبق القاعدة ذاتها على الدوال المختصرة؛ إذ نكتب غلافاً سهمياً onClick={() => onNotify('Saved')} حتى نؤجل التنفيذ إلى لحظة النقر الفعلية.

الصف 2 كود برمجي
HTML
function QuickActions({ onLog }) {
  function handleArchive() {
    onLog('Archived item on click!');
  }
  return (
    <div className="rx-row">
      <button onClick={handleArchive}>Archive</button>
      <button onClick={() => onLog('Pin')}>Pin</button>
    </div>
  );
}
الصف 3 معاينة حية