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

Avoid Contradictory States منع الحالات المتناقضة المستحيلة

صمّم هياكل حالة متينة في React عبر تجميع البيانات المترابطة ومنع الرايات المتناقضة وحساب القيم المشتقة أثناء التصيير وتخزين المعرّفات دون نسخ الخصائص.
3 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

تنص القاعدة الثانية على منع الحالات المتناقضة. تخيل مكون طلب شراء يعرّف متغيرين منطقيين منفصلين isSubmitting وisSubmitted؛ فلو نسي المطور تصفير الأول في أحد المسارات فسيصبح الاثنان true في اللحظة نفسها، وهي حالة مستحيلة تعرض مؤشر الانتظار ورسالة النجاح معاً!

استبدل الرايات المتضاربة بمتغير حالة نصي واحد status يمثل المرحلة بدقة مثل 'typing' أو 'submitting' أو 'success'، واشتق الثوابت المنطقية المقروءة أثناء التصيير.

الصف 2 كود برمجي
HTML
function PublishPanel() {
  const [status, setStatus] = useState('draft');
  const isPublishing = status === 'publishing';
  const isPublished = status === 'published';
  return (
    <button disabled={isPublishing}
      onClick={() => setStatus('published')}>
      {isPublished ? 'Live!' : 'Publish Lesson'}
    </button>
  );
}
الصف 3 معاينة حية