مرحباً،
على إصدار Discourse حديث (Ember 6.6.0)، أواجه هذا الخطأ في وحدة تحكم المتصفح، ولكن فقط عند تمكين المكون الإضافي المخصص الخاص بي:
glimmer-site-header.gjs:144 Uncaught TypeError: Cannot read properties of null (reading 'getBoundingClientRect')
at recalculateHeaderOffset (glimmer-site-header.gjs:144)
at setupHeader (glimmer-site-header.gjs:212)
...
ما قمت به حتى الآن:
- مع تعطيل جميع المكونات الإضافية المخصصة → لا يوجد خطأ.
- مع تمكين المكون الإضافي الخاص بي فقط (على السمة الافتراضية) → يظهر الخطأ.
- البحث في المكون الإضافي عن d-header، site-header، glimmer-site-header، getBoundingClientRect:
- لا يتطرق المكون الإضافي إلى الرأس أبدًا؛ إنه يضيف مكونات فقط عبر الموصلات (connectors):
- discovery-list-area/…
- below-site-header/…
- below-main-outlet/…
- لا يتطرق المكون الإضافي إلى الرأس أبدًا؛ إنه يضيف مكونات فقط عبر الموصلات (connectors):
- حاولت إنشاء عنصر .d-header وهمي بشكل دفاعي في تهيئة المكون الإضافي إذا لم يكن موجودًا، لكن الخطأ لا يزال يحدث.
- في الصفحات التي يتم فيها إطلاق الخطأ، يُرجع
document.querySelector('.d-header')عنصرًا.
الأسئلة:
- تحت أي ظروف يمكن لـ glimmer-site-header استدعاء
element.getBoundingClientRect()على قيمةnull؟ - هل هناك أي شيء مميز بخصوص استخدام الموصل
below-site-headerأو إضافة فئات (classes) إلى الجسم (body) يمكن أن يتداخل مع مكون الرأس الجديد؟ - هل هناك طريقة موصى بها للمكونات الإضافية للتواجد بأمان مع glimmer-site-header حتى لا يحدث هذا الوصول إلى قيمة
null؟
أي إشارات أو مشكلات معروفة حول هذا ستكون مفيدة للغاية.