إصلاح · الصفحات والهاتف والعربية
React: استدعاء hook غير صالح (Invalid hook call)
ما قد تراه
- تقول وحدة التحكم إن الـ hooks لا تُستدعى إلا داخل مكوّن دالة
السبب الأرجح
يُستخدم hook خارج مكوّن أو داخل شرط أو حلقة أو أن نسختين من React مثبتتان.
افحص أولاً (نحو دقيقتين)
- شغّل npm ls react: هل هناك أكثر من إصدار؟
أمر الإصلاح
ما تكتبه هنا لا يغادر متصفحك. البحث يعمل داخل هذه الصفحة ولا يُرسل شيء إلى خادم ولا إلى ذكاء اصطناعي.
يبقى في هذا المتصفح وعلى هذا الجهاز فقط. تُحذف المفاتيح وكلمات المرور قبل أي حفظ.
لغة الأمر
الصقه في Claude أو ChatGPT أو Gemini أو Cursor ثم اتبع ما يقوله.
بعد أن جرّبته، هل نجح؟
الخطوات
- اعرض المكوّن ومكان استدعاء hook.
- انقل الـ hooks إلى أعلى مكوّنات الدوال وليس داخل if أو حلقات.
- إن وُجدت نسختان من React فوحّد الإصدارات ليبقى واحد.
لا تفعل هذا
- لا تثبّت React مرتين.
- لا تحوّل المكوّنات إلى classes لتفاديه.