سيؤدي setState
إلى re-render
للمكون. لكل render
للمكون ، يجب استدعاء getDerivedStateFromProps
. هذه هي الطريقة التي يعمل بها getDerivedStateFromProps
.
ما يجب أن تفكر فيه هو كيفية إرجاع حالة جزئية إلى الدمج.
بدون رمز المثال ، لا أفهم ما تقوله أو تطلبه.
من المتوقع أن يتم استدعاء getDerivedStateFromProps
بعد setState
، نظرًا لأن الحالة التي تم إرجاعها بواسطة getDerivedStateFromProps
تعتمد على كل من props
و state
السابق state
. لذلك إذا تغيرت الحالة ، (بواسطة مكالمة setState
) ، فمن المحتمل أن الحالة المشتقة قد تغيرت أيضًا (نظرًا لأنها مزيج من props
و state
) .
لم نتصل به مرة أخرى من قبل إذا لم يتغير props
، لكن هذا السلوك تسبب في مشاكل ولذا قمنا بتغييره (تم إصلاحه) في 16.4 كما هو مذكور في منشور المدونة هذا:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops
إذا كنت ترغب في مشاركة بعض التعليمات البرمجية وطرح سؤال محدد حول سبب تشغيل الطريقة ، فيمكن لأحدنا إلقاء نظرة. في الوقت الحالي ، سأفترض أنه قد تمت الإجابة على سؤالك: ابتسم:
سيؤدي
setState
إلىre-render
للمكون. لكلrender
للمكون ، يجب استدعاءgetDerivedStateFromProps
. هذه هي الطريقة التي يعمل بهاgetDerivedStateFromProps
.ما يجب أن تفكر فيه هو كيفية إرجاع حالة جزئية إلى الدمج.
شكرا
bvaughn ، شكرا على الإجابة