اذهب إلى المحتوى
  • 0

كيف اتفادى تنبيه ESLint في React عند استخدام useEffect Hook مع مصفوفة DependencyList فارغة ؟

Muhannad Bahurmoz

السؤال

السلام عليكم ورحمة الله وبركاته,

أريد أن استخدم useEffect Hook ويتم تنفيذه مره واحدة فقط عند بدء التطبيق, لذلك وضعت مصفوفة فارغة,

ولكن يأتيني تنبيه من ESLint يجبرني على وضع الاعتمادات الذي استخدمتها بداخل ال useEffect كما موضح في الصورة التالية:

Screenshot2023-11-19131529.thumb.png.baa975ea69a6c84685070b98c6b26903.png

والمشكلة إذا تجاهلت التنبيه فلًا أستطيع رفع المشروع على سيرفرات Netlify, لأن عند رفع المشروع تأتيني المشكلة التالية:

ملاحظة: الصورة التالية لمشكلة مشابها وليست لنفس المشكلة.

Screenshot2023-11-19134211.thumb.png.9b1ea68035a7f69fa97202c62e22f010.png

هل يوجد حل لهذه المشكلة دون إزالة ESLint ؟, لأنني أستفيد منه في بعض الأحيان,

وشكرًا لكم

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

بإمكانك تعطيل ذلك التحذير مؤقتًا باستخدام تعليق eslint-disable-next-line فوق السطر الذي يولد التحذير، كالتالي:

useEffect(() => {
  // eslint-disable-next-line react-hooks/exhaustive-deps
  // الكود الخاص بك هنا
}, []);

أو إنشاء ملف باسم

 .eslintrc

  في مجلد المشروع ثم وضع التالي به:

{
  "plugins": ["react"],
  "rules": {
    "react-hooks/exhaustive-deps": [
      "error",
      {
        "additionalHooks": ["useEffect"],
        "dependency-array-exclusions": ["[]"]
      }
    ]
  }
}

حيث تستخدم خاصية dependency-array-exclusions في ESLint لتستثني بعض المصفوفات من التحقق، وتستطيع استخدام تلك الخاصية لاستثناء المصفوفة الفارغة من التحقق، بحيث لا يصدر ESLint أي تنبيهات.

وإن لم يعمل حاول تجربة الإعداد التالي:

{
  "rules": {
    "react-hooks/exhaustive-deps": "off"
  }
}
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

حاول تعطيل قاعدة react-hooks/exhaustive-deps لجميع الملفات في مشروعك أو لملفات معينة.

عن طريق إنشاء ملف .eslintrc.json في الجذر الرئيسي لمشروعك 

ثم إضافة الكود التالي

{
"overrides": [
    {
        "files": ["**/*.js"],
        "rules": {
            "react-hooks/exhaustive-deps": "off"
        }
    }
]
}
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...