ErrorBoundary حدود الخطأ (Error Boundary)
آخر تحديث: 2026-11-03
ErrorBoundary حدود الخطأ (Error Boundary)
حد الخطأ شبكة أمان على مستوى المكوّن: يصطاد الأخطاء في شجرة الابن ويرسم واجهة بديلة بدل شاشة بيضاء. إنه مكوّن class (getDerivedStateFromError / componentDidCatch) — بلا نظير Hook قبل React 19.
| المجموعة | البيانات والهندسة |
|---|---|
| النوع | نمط |
| منذ الإصدار | React 16 |
ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.
📝 الصيغة
class ErrorBoundary extends Component {
state = { hasError: false }
static getDerivedStateFromError() { return { hasError: true } }
componentDidCatch(error, info) { /* report */ }
render() { return this.state.hasError ? <Fallback/> : this.props.children }
}
⚙️ المعاملات
| children | شجرة الابن المحميّة — أي خطأ رسم داخلها يُصطاد. |
|---|---|
| fallback (custom) | واجهة بديلة: مرّرها كـ prop (fallback={<UI/>}) أو احفظها في حالة الحد. |
القيمة المرجعة:لا شيء (مكوّن class). يرسم الأبناء وهو بخير؛ وواجهة بديلة حين يرمي ابنٌ خطأً.
▶ مثال
المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.
الناتج:
لا شاشة بيضاء: يظهر البديل «حدث خطأ ما، لكن الصفحة حيّة» — صُطِيد خطأ رسم Bomb بواسطة الحد.
💡 النقاط الأساسية
⚠️ تحذير الحدود لا تصطاد: معالجات الأحداث، وردود النداء غير المتزامنة، وأخطاء SSR، أو أخطاءً ترميها هي نفسها. استخدم try/catch في المعالجات.
💡 نصيحة تستخدم المشاريع الإنتاجية عادة حزمة react-error-boundary (واجهة بأسلوب Hook) بدل كتابة class يدويًا.
ℹ️ ملاحظة تعمل الحدود بموضعها في الشجرة: على مستوى المسار تنقذ الصفحة؛ وعلى مستوى بطاقة تُضحّي بواحدة فقط.
🏷️ المزيد من البيانات والهندسة
💡 حالات ذات صلة
المزيد من الحالات قريباً.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
س لماذا يجب أن يكون حد الخطأ مكوّن class؟
ج لأن getDerivedStateFromError / componentDidCatch لا لهما صيغة Hook بعد؛ ويفضّل فريق React حزمة react-error-boundary.
س هل يصطاد حد الخطأ أخطاءً تُرمى في معالج حدث؟
ج لا. المعالجات تُنفَّذ خارج الرسم — استخدم try/catch هناك؛ فالحدود تغطّي أخطاء الرسم ودورة الحياة فقط.
س على أي مستوى يوضع الحد؟
ج ضع بحسب «نصف قطر العطل»: مستوى المسار ينقذ الصفحة؛ ومستوى عنصر ينقذ منطقة. ولفّ المناطق الحرجة (مثل أعمدة الكانبان) كل على حدة.