React-native: تطلب RCTBridge dispatch_sync لتحميل RCTDevLoadingView. هذا قد يؤدي إلى طريق مسدود

تم إنشاؤها على ١٥ أكتوبر ٢٠١٧  ·  106تعليقات  ·  مصدر: facebook/react-native

أحصل على هذا التحذير عشوائيًا عند بدء تشغيل تطبيق iOS (أي ليس دائمًا).

هل هذا تقرير الشوائب؟

نعم

هل قرأت إرشادات المساهمة ؟

نعم

بيئة

نظام التشغيل: macOS Sierra 10.12.6
العقدة: 6.10.2
الغزل: 1.0.2
npm: 5.4.2
حارس: 4.7.0
Xcode: Xcode 9.0 Build version 9A235
استوديو أندرويد: 2.1 AI-143.2915827

الحزم: (مطلوب => مثبت)
التفاعل: ^ 16.0.0 => 16.0.0
رد فعل أصلي: ^ 0.49.3 => 0.49.3

خطوات التكاثر

  1. ابدأ التطبيق

    سلوك متوقع

لا تحذير

السلوك الفعلي

capture d ecran 2017-10-15 12 49 45

نسخة تجريبية قابلة للتكرار

غير متاح

بعض الحزم التي أستخدمها

https://github.com/antoinerousseau/react-native-custom-components
https://github.com/rebeccahughes/react-native-device-info
https://github.com/evollu/react-native-fcm
https://github.com/gwmccull/react-native-polyfill
https://github.com/getsentry/react-native-sentry

Bug iOS

التعليق الأكثر فائدة

الرجاء التوقف عن إضافة +1 s ، فهذا يؤدي إلى إنشاء إشعارات بريد إلكتروني لا تضيف أي معلومات. استخدم ميزة "إضافة رد فعل" بدلاً من ذلك.

ال 106 كومينتر

كذلك هنا!

حصلت على هذه المشكلة الصفراء لنظام iOS

انا ارى هذا ايضا يحتمل أن تكون مرتبطة بـ # 11196.
أعتقد أن هذا هو سبب تعطل التطبيق أيضًا عند محاولة إعادة التحميل ؛ فشل مع
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method must not be called before the JS thread is created'

أتلقى هذا الخطأ أيضًا من وقت لآخر على نظام التشغيل iOS 11 وليس لدي أي فكرة عن كيفية تصحيح هذا لإعطاء مزيد من المعلومات. لا يساعد Stacktrace على الإطلاق في هذه الحالة.

+1

+1

الرجاء التوقف عن إضافة +1 s ، فهذا يؤدي إلى إنشاء إشعارات بريد إلكتروني لا تضيف أي معلومات. استخدم ميزة "إضافة رد فعل" بدلاً من ذلك.

المشكلة نفسها. فيما يلي الحزم التي أستخدمها:

  • رد فعل أصلي الجهاز المعلومات
  • تفاعل - أصلي - قابل للتفاعل
  • تفاعل-أصلي-حساس-معلومات
  • رد فعل أصلي snackbar
  • شاشة رد فعل أصلية
  • رد فعل أصلي svg
  • رد فعل أصلية ناقلات الرموز

بالنظر إلى التقاطع مع قائمة antoinerousseau ، فإن المواقع المحتملة لهذا الخطأ هي:

  • خطأ في رد الفعل الأصلي نفسه
  • خطأ في معلومات الجهاز التفاعلية
  • أخطاء متعددة في المكتبات بخلاف معلومات الجهاز التفاعلية

لقد أضفت للتو معلومات جهاز رد الفعل الأصلي ، وانتقلت من rn 0.49 إلى 0.50. والآن وجدت هذا الخطأ. لا أعرف ما إذا كانت هذه هي المشكلة ، ولكن عندما حصلت عليها.

المشكلة نفسها...
لذلك لم يكن خطأي؟

نفس المشكلة ... هل لديك أي حلول؟

المشكلة نفسها. الحزمة الوحيدة التي نستخدمها من القائمة أعلاه هي react-native-sentry .

نفس المشكلة هنا اليوم لقد بدأت تطبيقًا جديدًا وقمت بإضافته فقط
"أساس أصلي": "^ 2.3.3"،
"رد فعل": "16.0.0"،
"تفاعل أصلي": "0.50.3"،
"رد فعل أصلي fcm": "^ 10.0.3"

تضمين التغريدة
+1
"تفاعل أصلي": "0.49.3"،
تعطل التطبيق عند أول تحميل عشوائيًا.

أي شخص حلها ؟؟

dantman لقد بدأت في رؤية المشكلة فورًا بعد تثبيت رد فعل الجهاز الأصلي ، لذلك أشك بشدة في أن المشكلة مرتبطة ، على الأقل في حالتنا ، بتلك الحزمة المحددة.

الحزمة الأخرى الوحيدة التي أستخدمها سلسلة مفاتيح تفاعلية ، والتي قمت بتثبيتها منذ فترة طويلة دون أي مشاكل ، لذلك يبدو أنها رهان جيد.

rebeccahughes / رد فعل-native-device-info # 260 يبدو أنه يحتوي على رسالة تشير إلى RNDeviceInfo بينما يشير هذا الخطأ إلى RCTDevLoadingView . لذلك قد يكون هناك أكثر من بقعة واحدة تطلق هذا التحذير.

إذا كنت ستضع نقطة توقف على السطر التالي:

RCTLogWarn(@"RCTBridge required dispatch_sync to load %@. This may lead to deadlocks", _moduleClass);

يمكنك معرفة الوحدة / المكدس المسؤولة عن تحميل RCTDevLoadingView في حالتي ، كان RCTCxxBridge.mm الذي كان يقوم بتحميل الحزمة البعيدة والإبلاغ عن تقدم التنزيل على RCTDevLoadingView :

... onProgress:^(RCTLoadingProgress *progressData) {
#if RCT_DEV && __has_include("RCTDevLoadingView.h")
      RCTDevLoadingView *loadingView = [weakSelf moduleForClass:[RCTDevLoadingView class]];
      [loadingView updateProgress:progressData];
#endif
    }];

هنا يستخدم RCTCxxBridge moduleForClass والذي سيحمل نسخة من الوحدة إذا لم تكن متوفرة بعد. نظرًا لقائمة الانتظار المستخدمة لـ onProgress block RCTDevLoadingView سيتم تحميلها في قائمة انتظار غير رئيسية ، بينما يتطلب RCTDevLoadingView إعداد قائمة انتظار رئيسية.

تمكنت من حل هذا التحذير من خلال تحميل RCTDevLoadingView متفائل من خلال إعادة مثيل من RCTBridgeDelegate باستخدام:
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;

تمكنت من حل هذا التحذير عن طريق تحديث AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

رد الفعل الأصلي: 0.50.4
المشكلة نفسها...

رد فعل أصلي: 0.51.0
المشكلة نفسها...

"رد فعل": "16.2.0"،
"تفاعل أصلي": "0.52.0"،
المشكلة نفسها...

"رد فعل": "16.2.0"،
"تفاعل أصلي": "0.51.0"،
"رد فعل أصلي معلومات الجهاز": "0.13.0"

كان الحل هنا هو نقل معلومات الجهاز التفاعلية من ملف pod وربطها يدويًا في المشروع. يبدو أن هذا يحل المشكلة. أعتقد أن طريقة أخرى يمكن أن تتمثل في تضمين CxxBridge كمجموعة فرعية لـ React في ملف pod ، لكن هذا يتطلب حماقة (وبالتالي تعزيزًا) ، وهذا الإعداد بأكمله مرهق / يستغرق وقتًا طويلاً. إذا كنت تريد حلًا سريعًا ، فما عليك سوى إزالة الحزم التي تسبب المشكلة من البود.

لم يتم تثبيت "رد فعل-أصلي-جهاز-معلومات":
المشكلة موجودة في 0.54.2:

"رد فعل": "16.3.0-alpha.2"،
"تفاعل أصلي": "0.54.2"،
"زر تفاعل-أصلي-عمل": "^ 2.8.4" ،
"رد فعل - أصلية - admob": "^ 2.0.0-beta.4"،
"رد فعل أصلي متحرك": "^ 1.2.4"،
"تفاعل-أصلي-رائع-تنبيهات": "^ 1.0.7"،
"تفاعل-أصلية-عناصر": "^ 0.19.0"،
"رد فعل أصلي fbsdk": "^ 0.7.0"،
"تفاعل-أصلي-خطي-متدرج": "^ 2.4.0"،
"رد فعل-أصلية-اختلاف المنظر-عرض التمرير": "^ 0.21.0" ،
"رد فعل-أصلية-صور-شبكة": "0.0.2"،
"أبعاد تفاعلية أصلية مستجيبة": "^ 1.0.2" ،
"رد فعل-أصلي-أداة عرض دائرية": "^ 3.6.0"،
"تفاعل-أصلية-متجه-رموز": "^ 4.5.0"،
"رد فعل التنقل": "^ 1.5.7"

كان مع "زر رد الفعل الأصلي": "^ 2.8.4" ، أدت إضافة shadowStyle={{shadowOpacity: 0.9}} حل التحذير ..

نفس المشكلة هنا.

المشكلة نفسها.
RN 0.54.4

هل حصل أحد على الحل؟

يأتي الخطأ حتى بالنسبة لمشروع حديث / تم إنشاؤه حديثًا.

"رد فعل": "16.3.1"،
"تفاعل أصلي": "0.54.4"

نفسه

+1

antoinerousseau أي تحديث بشأن هذه المسألة؟

لا أوصي بالحل المقدم منdevburmistro. بالنسبة لمشروعي ، أنشأ التضمين نوعًا من حالة السباق حيث سيظهر خطأ التأكيد هذا بشكل عشوائي عند بدء التشغيل عند تشغيله من المحاكي.

إعدادي:

react-native-cli: 2.0.1
react-native: 0.53.0

لقد بدأت في مواجهة هذه المشكلة الآن فقط بعد إعداد الريبو الخاص بي من البداية وإدخال كود js النقي مرة أخرى هناك. الفرق المحتمل بين الريبو السابق والجديد هو أنني الآن أستخدم Cocoapods.

أي شخص لا يستخدم Cocoapods؟

حدث هذا مباشرة بعد أن أضفت

رد فعل أصلي طمس

إلى عرض امتداد المشاركة ، متداخل في

رد فعل أصلي modalbox

Babazon هل تستخدم مصحح أخطاء عندما يحدث هذا؟

آسف. لم أتمكن من تصحيح الأخطاء / سجل وحدة التحكم من عرض Share Extension ، فقط التطبيق الرئيسي.

+1

شكرا لنشر هذه! يبدو أن مشكلتك قد تشير إلى إصدار قديم من React Native. هل يمكنك إعادة إظهار المشكلة في

شكرا لمساهماتكم.

لا تزال مشكلة @ response-native-bot تحدث في React Native 0.55

@ React-native-bot عند استخدام cocoapods لإدارة التفاعل الأصلي ، ستظهر المشكلة.

الإصدارات أحاول 0.50.4 و 0.55.4

فقط قم بتثبيت رد فعل أصلي-svg على React Native 0.55.3 وظهرت هذه المشكلة.

screen shot 2018-05-30 at 16 04 07

لا تزال المشكلة تحدث في:

رد فعل أصلي CLI: 2.0.1
رد فعل أصلي: 0.55.4

لدي نفس التحذير تمامًا مع مشروع جديد تم إنشاؤه بدون إضافة أي رمز ولكن تم إدخال تبعيات Firebase فقط.
أنا أستخدم: رد فعل: 16.3.1
رد فعل أصلي: 0.55.4
شكرا لك

أواجه نفس المشكلة ولكن بالنسبة لي كان ذلك بسبب تشغيل نافذة المحطة الطرفية السابقة عند إعادة تشغيل الإصدار من Xcode. لقد خرجت للتو من المحطة الطرفية والمحاكي وقمت بتشغيل الإنشاء مرة أخرى ، وتم حل هذه المشكلة.

لدي أيضًا معلومات جهاز رد فعل أصلي مثبتة ، لكن الرسالة الصفراء مختلفة قليلاً بالنسبة لي: "RCTBridge يتطلب dispatch_sync لتحميل RCCManagerModule ..."

كنت سأقول إنني تلقيت هذا التحذير عندما أقوم map عبر مصفوفة لإرجاع عناصر جديدة أو تمرير خاصية style إلى المكونات المخصصة ، لكن الآن يبدو التحذير غير متوقع.

تمت مواجهة هذه المشكلة في OS11 أيضًا.

  • رد فعل التنقل
  • رد فعل أصلية ناقلات الرموز

أرى هنا بعض الأشخاص الذين ذكروا استخدام الرموز المتجهة.

لقد واجهت أيضًا نفس المشكلة بالنسبة لي ، فقد قمت بإلغاء الربط وإزالة معلومات جهاز رد الفعل الأصلي والآن لا يظهر هذا التحذير.

واجهت نفس المشكلة بعد إضافة رموز متجهة تفاعلية أصلية ، وقم بإزالتها وذهب التحذير.

لمعلوماتك ، ظهر هذا التحذير اليوم بعد إعادة التحميل باستخدام مصحح الأخطاء عن بُعد. تم إيقاف تشغيل جهاز التحكم عن بُعد ، ولم يتم إعادة التحميل ، ولا يوجد تحذير. تم إعادة تشغيل جهاز التحكم عن بُعد ، ولم يتم إعادة التحميل ، ولا يوجد تحذير.

لمعلوماتك ، ظهر هذا التحذير اليوم بعد إعادة التحميل باستخدام مصحح الأخطاء عن بُعد. تم إيقاف تشغيل جهاز التحكم عن بُعد ، ولم يتم إعادة التحميل ، ولا يوجد تحذير. تم إعادة تشغيل جهاز التحكم عن بُعد ، ولم يتم إعادة التحميل ، ولا يوجد تحذير.

~ بعد قراءة تعليق mokriya ، أعدت تحميل مصحح الأخطاء وتوقف عن إظهار التحذير. من المحتمل أن يكون التنقل بين محاكي / محاكي Android و IOS مع فتح علامة تبويب مصحح الأخطاء في المتصفح هو سبب ذلك.

كلا ليس هذا

iOS 12 ، RN 0.57.0 نفس المشكلة.

كيف تحل؟
أو التجاهل؟

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['RCTBridge']);

نعم ، لدي هذه المشكلة أيضًا بعد إضافة رد فعل أصلي-فيديو ، لكن ماذا يعني ذلك؟ لا يبدو أنه يمنع تشغيل مقاطع الفيديو. أيضًا لماذا تتسبب جميع مكونات الجهات الخارجية في حدوث الخطأ؟ هل نفقد شيئًا ما في تطوير وحداتنا الأصلية؟

الحصول على نفس المشكلة على iOS 12.1 ، RN 0.57.4 بدون react-native-device-info

لدي بعض المشاكل

"lodash": "^4.17.10",
"react": "16.4.1",
"react-native": "0.56.0",
"react-native-check-box": "^2.1.0",
"react-native-collapsible": "^1.2.1",
"react-native-elements": "^0.19.1",
"react-native-google-analytics-bridge": "^5.8.0",
"react-native-google-places-autocomplete": "^1.3.9",
"react-native-map-clustering": "^1.3.0",
"react-native-maps": "^0.21.0",
"react-native-masked-text": "^1.7.2",
"react-native-modal-picker": "0.0.16",
"react-native-onesignal": "^3.2.8",
"react-native-simple-radio-button": "^2.7.2",
"react-native-svg": "^8.0.0",
"react-native-ui-kitten": "^3.0.1",
"react-native-vector-icons": "^5.0.0",
"react-navigation": "^2.11.2",
"rn-sliding-up-panel": "^1.2.1",
"victory-native": "^30.5.0"

في IOS ، الحصول على "يتطلب RCTBridge dispatch_snyc لتحميل RCTDevLoadingView وهذا قد يؤدي إلى توقف تام."

ربما يجب عليك Project -> Clean في Xcode الخاص بك ، ثم إعادة تشغيل التطبيق الخاص بك.

لقد أكدت أن هذا التعليق هو الحل. شكرا @ ماتيجسف!

ابحث عن RCTBridgeDelegate وتجاوز طريقة extraModulesForBridge .

ج موضوعية

<strong i="11">@interface</strong> MyBridgeDelegate : NSObject <RCTBridgeDelegate>
<strong i="12">@end</strong>

<strong i="13">@implementation</strong> MyBridgeDelegate

- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
{
  return @[
#if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]],
#endif
  ];
}

<strong i="14">@end</strong>

سويفت 4

class MyBridgeDelegate: NSObject, RCTBridgeDelegate {
  func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
    var modules: [Any]! = []
    if RCT_DEV == 1 {
      modules.append(bridge.module(for: RCTDevLoadingView.self))
    }
    return modules as? [RCTBridgeModule]
  }
}

Repro على iOS12، RN 0.57.8

image
التبعية ، نفس المشكلة

aleclarson ما الذي يفعله هذا الرمز بالضبط؟

ccorcos يقوم بتحميل RCTDevLoadingView سابقًا ، لذلك لا يتعين عليه حظر الموضوع الرئيسي عند تحميله بواسطة RN. قد يكون هذا التعليق حلاً أسهل بالنسبة لك.

لست متأكدًا مما إذا كان هذا لا يزال يحدث للآخرين ولكنه لا يزال يحدث بالنسبة لي مع RN 0.57.8 + iOS 11.3 (على الأقل)

أنا أستخدم التغيير من التعليق أعلاه بواسطة devburmistro بنجاح

مواجهة هذه القضية

RN 0.58.3
iOS 11.4 ، 12.1

وهو يؤدي بالفعل إلى طريق مسدود. يحدث لي عندما أغلق النموذج المخصص

لم أحصل على هذا في 0.57.8 السابق والذي كان جيدًا

نفس الشيء هنا ، الحصول على هذا بعد الترقية إلى RN 0.58.3

الخطأ الدقيق الخاص بي هو: Unable find module for DevLoadingView ، الحلول المذكورة أعلاه لا تصلحها بالنسبة لي

screen shot 2019-01-30 at 0 54 04

يبدو مرتبطًا بهذا الالتزام ، والذي تمت إضافته في الواقع إلى RN 0.58.3

https://github.com/facebook/react-native/commit/d7a0c44590bcf3fb9d055aeae3391d5bcd7e21be#diff -a2a67635fffd7b690d14dc17ae563a71

أواجه نفس مشكلة "تعذر العثور على وحدة DevLoadingView" مثل oferRounds بعد الترقية إلى RN 0.58.3 اليوم.

يبدو أنه يتم تشغيله عند فتح التطبيق لأول مرة في جهاز المحاكاة. عمليات إعادة التحميل اللاحقة (cmd-R) لا تقدم الخطأ.

تحرير: تم تقديم مشكلة منفصلة لهذا الخطأ المحدد: # 23235

يمكنني أيضًا أن أؤكد أن هذه لا تزال مشكلة على iOS مع 0.58.3.

بعض الملاحظات الشيقة:

  • كما قال superguineapig ، لا يظهر بعد إعادة تحميل التطبيق.
  • إذا قمت بإنهاء جميع مثيلات المحطة الطرفية ، وقمت ببناء التطبيق / بدء تشغيل الحزم من جديد ، فلن يُظهر الخطأ. ومع ذلك ، إذا قمت بعد ذلك بإبقاء الرابط مفتوحًا وإعادة إنشاء التطبيق من Xcode ، فسيظهر الخطأ بعد إرفاق التطبيق بالرازم مرة أخرى.

_ تعديل: يمكنني أن أؤكد أن هذا الحل البديل لا يزال حلاً قابلاً للتطبيق.

تمكنت من حل هذا التحذير عن طريق تحديث AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

هذا عمل معي.

هل كان أي شخص قادرًا على تسجيل مندوب RCTBridge مخصص أثناء استخدام التنقل الأصلي؟ يجب أن تكون قادرًا على تمرير المندوب عبر المعلمة bridgeManagerDelegate ، ولكن يبدو أنها معطلة (RCTBridge المقدم إلى extraModulesForBridge دائمًا nil ).

لقد بدأت للتو في الحصول على هذا فورًا بعد إضافة react-native-device-info على RN 0.58.6 و iOS 12.

حسنًا ، يبدو أن هذا التعليق قد أصلحه بالنسبة لي.

رد الفعل الأصلي 0.59.1

أبدأ في رؤية هذا التحذير مباشرة بعد تثبيت معلومات جهاز رد الفعل الأصلي أيضًا ، أي حل حقيقي؟

أرى هذا أيضًا بشكل عشوائي ، ولم أجري أي تغييرات في رمز تطبيقي بخلاف ما هو ضروري (التكوين) لجعل كل شيء يعمل مرة أخرى ، في الترقية من RN 0.57.8 إلى 0.59.5. في حالتي ، lib المعني هو CodePush ، مع تحذيرين من موقع yellowbox:

RCTBridge required dispatch_sync to load CodePush. This may lead to deadlocks
و
Required dispatch_sync to load constants for CodePush. This may lead to deadlocks

هذه القضية طويلة. أفترض أن تحديد السبب الجذري لا يزال لغزا؟ اسمحوا لي أن أعرف ما هي معلومات تصحيح الأخطاء الأخرى التي يمكنني تقديمها للمساعدة.


الحزمة الخاصة بي. json:

{
  "name": "wonderswipe",
  "version": "0.0.1",
  "private": true,
  "eslintConfig": {
    "parserOptions": {
      "ecmaVersion": 7,
      "sourceType": "module",
      "ecmaFeatures": {
        "jsx": true
      }
    },
    "env": {
      "browser": false,
      "node": true
    },
    "plugins": [
      "react",
      "react-native",
      "react-hooks"
    ],
    "rules": {
      "comma-dangle": [
        2,
        "always-multiline"
      ],
      "semi": [
        2,
        "never"
      ],
      "react-native/no-unused-styles": 2,
      "react-native/split-platform-components": 2,
      "react-hooks/rules-of-hooks": "error"
    }
  },
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "postinstall": "patch-package"
  },
  "dependencies": {
    "@postlight/mercury-parser": "^2.0.0",
    "@react-native-community/async-storage": "^1.3.3",
    "@react-native-community/viewpager": "^1.1.6",
    "babel-plugin-idx": "^2.4.0",
    "buffer": "^5.2.1",
    "he": "^1.1.0",
    "idx": "^2.5.5",
    "lodash": "^4.17.2",
    "moment": "^2.19.0",
    "moment-timezone": "^0.5.10",
    "node-summary": "../node-summary",
    "react": "16.8.3",
    "react-native": "^0.59.4",
    "react-native-actionsheet": "^2.4.2",
    "react-native-blur": "^3.2.0",
    "react-native-cached-image": "../react-native-cached-image",
    "react-native-cheerio": "^1.0.0-rc.4",
    "react-native-code-push": "^5.3",
    "react-native-custom-tabs": "^0.1.7",
    "react-native-easy-toast": "^1.0.9",
    "react-native-firebase": "^5.3.1",
    "react-native-fit-image": "^1.4.8",
    "react-native-flanimatedimage": "^0.4.0",
    "react-native-highlight-words": "^1.0.1",
    "react-native-keep-awake": "^4.0.0",
    "react-native-linear-gradient": "^2.0.0",
    "react-native-modal-dropdown": "^0.6.2",
    "react-native-modalbox": "^1.6.0",
    "react-native-orientation": "^3.1.3",
    "react-native-parallax-scroll-view": "../react-native-parallax-scroll-view",
    "react-native-rate": "^1.0.8",
    "react-native-safari-view": "^2.0.0",
    "react-native-sentry": "^0.42.0",
    "react-native-sha256": "^1.1.1",
    "react-native-status-bar-size": "^0.3.2",
    "react-native-swiper": "^1.5.14",
    "react-native-tooltip": "^5.2.0",
    "react-native-tts": "^3.0.0",
    "react-native-vector-icons": "^6.4.2",
    "react-native-webview": "^5.7.0",
    "react-native-webview-bridge": "^0.40.1",
    "react-redux": "^7.0.1",
    "redux": "^4.0.0",
    "redux-thunk": "^2.1.0"
  },
  "devDependencies": {
    "babel-eslint": "^10.0.1",
    "eslint": "^5.15.1",
    "eslint-plugin-react": "^7.12.4",
    "eslint-plugin-react-hooks": "^1.0.1",
    "eslint-plugin-react-native": "^3.6.0",
    "patch-package": "^6.1.2",
    "postinstall-postinstall": "^2.0.0",
    "redux-logger": "^3.0.6"
  },
  "resolutions": {
    "babel-core": "7.0.0-bridge.0"
  }
}

image

لقد أصلحت هذا الخطأ عن طريق تعليق grossingdev . ولكن بعد تحديث رد الفعل الأصلي إلى الإصدار 0.59.8. لقد جاء هذا الخطأ مرة أخرى

في رد الفعل الأصلي 0.59.3 ، إليك ما يجب أن تبدو عليه الشفرة لحل المشكلة:

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  #if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]];
  #endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"YourAppName"
                                            initialProperties:nil];

مواجهة نفس التحذير بعد تحديث ملف AppDelegate.m أثناء دمج خريطة google react-native-maps في تطبيق ios.
"react-native": "0.59.5"

بالنسبة لي - نجح هذا -
"رد فعل": "16.8.3"،
"تفاعل أصلي": "0.59.9"،
ملف AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
//  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
//                                                   moduleName:@"mobileapp"
//                                            initialProperties:nil];


  NSURL *theurl ;
#if DEBUG
  theurl = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  theurl = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:theurl
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"mobileapp"
                                            initialProperties:nil];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

@ amitkumar3968 تنسيق تعليقك كرمز

لقد حصلت للتو على خطأ مشابه:
Screenshot 2019-07-23 at 10 27 04


مجموعتي. json:

{
  "name": "auth",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "firebase": "^6.3.1",
    "react": "16.8.6",
    "react-native": "0.60.0"
  },
  "devDependencies": {
    "@babel/core": "7.5.0",
    "@babel/runtime": "7.5.0",
    "@react-native-community/eslint-config": "0.0.3",
    "babel-jest": "24.8.0",
    "eslint": "6.0.1",
    "jest": "24.8.0",
    "metro-react-native-babel-preset": "0.54.1",
    "react-test-renderer": "16.8.6"
  },
  "jest": {
    "preset": "react-native"
  }
}

تم إصلاح التحديث ، ولكن يبدو أن شيئًا ما ليس صحيحًا إذا حدث هذا بشكل عشوائي.

تحدث هذه المشكلة فقط عندما أقوم بإلغاء تنشيط مصحح الأخطاء. عند فتح شاشة Perf Monitor ، لاحظت أن ذاكرة الوصول العشوائي تنتقل من ± 100 ميجابايت إلى ± 300 ميجابايت بعد إلغاء التنشيط.

مع المصحح:
Screen Shot 2019-07-25 at 9 07 45 AM

بدون مصحح:
Screen Shot 2019-07-25 at 9 08 09 AM

الحل البديل المقترح لا يعمل في حالتي ، لأنه يتوقف فقط عن عرض التحذير ، لكنه لا يحل مشكلة الذاكرة.

أتساءل عما إذا كانت هذه المشكلة ستؤثر على أداء التطبيق في وضع الإصدار.

حل الحل المذكور أعلاه هذه المشكلة بالنسبة لي أيضًا ، على React Native 0.59.10 :

diff --git a/ios/Foo/AppDelegate.m b/ios/Foo/AppDelegate.m
index e446e79..2c28719 100644
--- a/ios/Foo/AppDelegate.m
+++ b/ios/Foo/AppDelegate.m
@@ -18,6 +18,11 @@

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

+// https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+#if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+#import <React/RCTDevLoadingView.h>
+#endif
+
 <strong i="7">@implementation</strong> AppDelegate

@@ -39,6 +44,13 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(

   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
+
+  // https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+  #if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+  [bridge moduleForClass:[RCTDevLoadingView class]];
+  #endif
+
   RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"Foo" initialProperties:nil];
   rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

الاختلاف الوحيد هنا هو أنني قمت بمطابقة نفس المنطق تمامًا لتحميله (الجزء RCT_DEV && __has_include(<React/RCTDevLoadingView.h>) ) ...

حصلت للتو على 2 بـ react-native-firebase . نادرًا ما يحدث ولكن:
image
image

لقد تمكنت من إعادة إنشاء هذه المشكلة عن طريق إضافة رموز التطبيق إلى الدليل Images.xcassets/AppIcon.appiconset لمشروع الاختبار الذي أنشأته حديثًا باستخدام التفاعل الأصلي 0.61.2. أدت إضافة أسطر التعليمات البرمجية المذكورة في هذه المشكلة إلى حل المشكلة بالنسبة لي.

رد الفعل الأصلي 0.59.10
المشكلة نفسها.

نفس المشكلة هنا !! أي شخص حل هذه المشكلة؟

تمكنت من حل هذا التحذير عن طريق تحديث AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

حل هذا الحل البديل التحذير. شكرا جزيلا.

نفس المشكلة ، ولكن إذا حذفت كتلة مكون التعليمات البرمجيةDidUpdate ، هذا التحذير يختفي. ولكن لكني أحتاج componentDidUpdate.

أولاً: افتح Xcode ، أجب Xcode بشكل عادي إذا كنت تريد تثبيت مكون: انقر فوق تثبيت

عندما تقوم بتحديث برنامج macOS ، يجب عليك فتح Xcode للتحديث

تمكنت من حل هذا التحذير عن طريق تحديث AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

grossingdev ما هو jsCodeLocation من فضلك؟ أعلم أنه من المفترض أن يكون عنوان URL ولكن ما الذي يجب أن يشير إليه؟

حصلت للتو على 2 بـ react-native-firebase . نادرًا ما يحدث ولكن:
image
image

تسبب Firebase لي هذا الخطأ. تمانع في مشاركة كيف حلت ذلك؟ تضمين التغريدة

@ abdi4 لقد واجهت هذا أيضًا ، هل تمكنت من حلها؟

zloka لا يحدث هذا بشكل عشوائي وأنا غير قادر على إعادة إنشائه

أبسط طريقة لتجاهل هذا التحذير أو أي تحذير آخر هي

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings([
    'RCTBridge'
]);

هذه القضية تنشأ بالنسبة لي بشكل غير حتمي. الإصلاح الوحيد الذي أجريته في أي وقت هو حذف التطبيق من جهازي وإعادة التشغيل.

حل سريع:

Let bridge = RCTBridge (bundleURL: jsCodeLocation، moduleProvider: nil، launchOptions: nil)
#if RCT_DEV
الجسر؟. الوحدة النمطية (لـ: RCTDevLoadingView.self)
#إنهاء إذا
اسمح لـ rootView = RCTRootView (bridge: bridge: bridge !، moduleName: "AppMain"، initialProperties: nil)

مرحبًا ، يبدو أنه لم يكن هناك أي نشاط بشأن هذه المشكلة مؤخرًا. هل تم إصلاح المشكلة أم أنها لا تزال تتطلب اهتمام المجتمع؟ قد يتم إغلاق هذه المشكلة في حالة عدم حدوث أي نشاط آخر. يمكنك أيضًا تصنيف هذه المشكلة على أنها "مناقشة" أو إضافتها إلى "Backlog" وسأتركها مفتوحة. شكرا لمساهماتكم.

مرحبًا ، يبدو أنه لم يكن هناك أي نشاط بشأن هذه المشكلة مؤخرًا. هل تم إصلاح المشكلة أم أنها لا تزال تتطلب اهتمام المجتمع؟ قد يتم إغلاق هذه المشكلة في حالة عدم حدوث أي نشاط آخر. يمكنك أيضًا تصنيف هذه المشكلة على أنها "مناقشة" أو إضافتها إلى "Backlog" وسأتركها مفتوحة. شكرا لمساهماتكم.

هذا هو نشاطك. يستمر التحذير في الظهور في التطبيقات الجديدة الجديدة.

sospedra ، هل يمكنك تقديم إعادة شراء لهذا الذي يحدث مع نموذج React Native دون أي تبعيات خارجية؟

بالنسبة للحالات التي يحدث فيها ذلك مع مكتبات الطرف الثالث ، يجب تقديم المشكلات إلى تلك المكتبات

نفس المشكلة على 0.63.2 لست متأكدًا من سبب ذلك ، فهي تحدث بشكل عشوائي في بعض الأحيان لا تعمل جميع تفاعلات التطبيق

نفس التحذير يأتي فقط مع رد الفعل الأصلي-macos عند إعادة تحميل Metro (يدوي) ، وليس عند تحديث تغييرات الكود ، وليس مع iOS أو android أو windows.
NB: بالنسبة لي مع RN 0.62.2

حصلت على نفس التحذير مع تطبيق Catalyst.

لقد أغلقت جهاز المحاكاة ، وقتلت المترو ، في XCode build and run اختفى التحذير!

يؤدي إغلاق حزمة المترو وإلغاء تثبيت التطبيق من جهاز المحاكاة إلى إخفاء التحذير. لكن لست متأكدًا مما يحدث تحت الغطاء. ظهر تحذير بعد إضافة حزمة thunk.

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