React: يتم تنفيذ getDerivedStateFromProps بعد setState # 13015

تم إنشاؤها على ٢٤ ديسمبر ٢٠١٩  ·  4تعليقات  ·  مصدر: facebook/react

من الناحية المثالية ، لا ينبغي استدعاء getDerivedStateFromProps بسبب setState للمكون الحالي. لكنها تتصرف على هذا النحو. هل يستطيع احد ان يشرح؟

تعذر العثور على حل في # 13015

Question

ال 4 كومينتر

سيؤدي 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 ، شكرا على الإجابة

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات