مرحبا اصدقاء!
لذا ، قرر مطورو React جعل عملنا مع عملهم أكثر خطًا ، للتوجيه ، إذا جاز التعبير ، تجاهلنا مسار أقل فرصة لارتكاب خطأ وكتابة رمز سيئ ، وهو ، في رأيي ، حقنا غير القابل للتصرف ووسيلة للتحسين والابتكار. نحن نتحدث عن جميع الأساليب المفضلة للمكون WillReceiveProps وغيرها من نفس السلسلة ، لن يكون هناك المزيد ، ولكن سيتم إعطاؤنا بديلاً في شكل الطريقة الثابتة getDerivedStateFromProps. شخصيا ، يذكرني بغرفة مظلمة حيث تكمن الأشياء ، ويجب العثور عليها ، ولكن لا يوجد شيء مرئي.
يكتب المطورون في ردودهم على التعليقات الغاضبة لمستخدمي React أنهم يقولون: حسنًا ، لن نقدم لك prevProps ، ليس من الممكن ، فكر في شيء ما ، prevProps لا ، حسنًا ، أنت تبقى هناك ، فقط قم بتخزينها في حالة ، بشكل عام يقترحون علينا إنشاء عكاز صغير في موقعنا كود جيد جديد. كل شيء بسيط ، بالطبع ، يمكنك أن تفهم وتسامح ، لكنني انزعجت من حقيقة أنه ليس لدي هذا السياق ، غرفتي خرسانية ، لم يكن هناك شيء مرئي منه ، حتى جيراني لم يسمعوا ، لذلك قررت كتابة شيء لنفسي ، ستخفي جميع العكازات في حد ذاتها وستبدو الكود الخاص بي غريبًا ، ولكنه عظمى (وعديم العظم).
بشكل عام ، أحتاج إلى تنفيذ prevProps في حالة المكون ، وأريد أيضًا أن يبدو كل شيء كالمعتاد ، ومن المستحيل أيضًا العيش بدون السحر في هذا getDerivedStateFromProps الثابت (هذا أحمق!). يومان من العذاب وتحسين الذات وكل شيء جاهز ، أنجبت فأرًا.
التثبيت
npm install
استخدم
فقط اكتب نفس getDerivedStateFromProps و ComponentDidUpdate ، ولكن تم تعديله بالفعل.
نلف مكوننا في "withStateMaster" ، وننقل هناك قائمة "الدعائم" التي تحتاج إلى تتبع تغييراتها
import {Component} from 'react' import {withStateMaster, registerContext, unregisterContext} from 'state-master';
إذا ورث المكون من عنصر آخر ، قم بتمرير الأصل بحيث يتم استدعاء الأصل getDerivedStateFromProps
export const Container = withStateMaster(ContainerComponent, PROP_LIST, null, ParentalComponent);
هذا هو حل هذه المشكلة (على الرغم من أنني ربما لم أفهم رد الفعل بما فيه الكفاية ، وهذه ليست مشكلة على الإطلاق).
لذا قاومت قوانين القانون الجديدة ، ربما في يوم من الأيام سأضع نفسي وأعيد كتابة كل شيء كما ينبغي.
على الرغم من أن المطورين سيعيدون على الأرجح كل شيء مرة أخرى وستظهر مشاكل ملحة أخرى.
هذا كل شيء ، أنا أستلقي ، لكنهم لا يضربون الأشخاص طريح الفراش ، كما يقولون.