لدي عرض قائمة في شاشة (في حالتي ، علامة تبويب) وإذا قمت بتحديد علامة التبويب مرة أخرى (تم تحديدها بالفعل) ، يتم إنشاء مكون جديد.
على سبيل المثال ، إذا قمت بتمرير القائمة ثم النقر فوق زر علامة التبويب ، فسوف ينتقل التمرير إلى الأعلى. يحدث ذلك فقط في المرة الأولى ، لذلك إذا نقرت على زر علامة التبويب مرة أخرى ، فلن يحدث شيء (وهذا هو السلوك المتوقع ، على ما أعتقد).
يحدث الشيء نفسه "أحيانًا" (لا أعرف متى بالضبط) عند الانتقال داخل المشاهد ولا أعتقد أن هذا ما يجب أن يحدث لأنك ستفقد حالة المكونات السابقة.
الإصدارات التي أستخدمها:
مع رد فعل-أصلية-موجه-تدفق v3.37.0 يعمل كما هو متوقع (لا يعيد عرض الشاشة) ، لذلك يبدو خطأ في v3.38.0 أو تبعياته.
نعم ، في مواجهة نفس المشكلة ، العودة إلى 3.37.0
أواجه نفس المشكلة حتى في 3.37
أستطيع أن أؤكد أن هذه المشكلة تختفي في 3.37.0 ولكنها موجودة في 3.38.0.
@ sk15973
تأكد من إعادة تشغيل الحزمة الأصلية التفاعلية بعد تثبيت حزمة جديدة.
وتأكد أيضًا من استخدام componentDidMount / componentWillMount / componentWillReceiveProps وفقًا لذلك ، ولا تقم بالعديد من التغييرات غير الضرورية على الحالة.
نفس المشكلة هنا.
@ sk15973 في package.json
يُرجى التأكد من أن اعتمادك على react-native-router-flux
لا يتضمن رمز علامة الإقحام (^):
"dependencies": {
"react-native-router-flux": "3.37.0", // Good
"react-native-router-flux": "^3.37.0", // Bad
}
باستخدام رمز علامة الإقحام ، ستستخدم فعليًا الإصدار 3.38.0 عندما تقوم بعمل npm install
جديدًا. هذا لأنه يبدو أن react-native-router-flux
قد كسر semver بإدخال تغيير في السلوك في إصدار ثانوي.
يرجى أن تسامحني aksonov لأنني أشرت إليك ، لكنني أعتقد أن هذا أمر خطير إلى حد ما لأن علامة الإقحام ^ يتم إدخالها افتراضيًا عند استخدام npm install react-nativer-router-flux --save
بمرور الوقت ، قد يجد مستخدمو هذه المكتبة أنفسهم في مشاكل غامضة بعد إجراء npm install
. لكنني أفهم تمامًا إذا لم يكن لديك الوقت:)
أواجه نفس المشكلة في 3.38
jonrh شكرا لك ، لم ألاحظ ذلك ، وهو يعمل بشكل جيد الآن
EmiPCjonrh هل هذا الخطأ حلها في 3.39.1 ؟؟؟
iiitmahesh أنا للأسف لا أعرف. الإصدار 3.37.0 هو آخر إصدار سأستخدمه من هذه المكتبة ، حيث سأنتقل إلى React Navigation.
التعليق الأكثر فائدة
مع رد فعل-أصلية-موجه-تدفق v3.37.0 يعمل كما هو متوقع (لا يعيد عرض الشاشة) ، لذلك يبدو خطأ في v3.38.0 أو تبعياته.