أحصل على هذا التحذير عشوائيًا عند بدء تشغيل تطبيق 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
لا تحذير
غير متاح
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
كذلك هنا!
حصلت على هذه المشكلة الصفراء لنظام 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 ، فهذا يؤدي إلى إنشاء إشعارات بريد إلكتروني لا تضيف أي معلومات. استخدم ميزة "إضافة رد فعل" بدلاً من ذلك.
المشكلة نفسها. فيما يلي الحزم التي أستخدمها:
بالنظر إلى التقاطع مع قائمة 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 وظهرت هذه المشكلة.
لا تزال المشكلة تحدث في:
رد فعل أصلي 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>
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
التبعية ، نفس المشكلة
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
، الحلول المذكورة أعلاه لا تصلحها بالنسبة لي
يبدو مرتبطًا بهذا الالتزام ، والذي تمت إضافته في الواقع إلى 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.
بعض الملاحظات الشيقة:
_ تعديل: يمكنني أن أؤكد أن هذا الحل البديل لا يزال حلاً قابلاً للتطبيق.
تمكنت من حل هذا التحذير عن طريق تحديث
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"
}
}
لقد أصلحت هذا الخطأ عن طريق تعليق 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 تنسيق تعليقك كرمز
لقد حصلت للتو على خطأ مشابه:
مجموعتي. 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 ميجابايت بعد إلغاء التنشيط.
مع المصحح:
بدون مصحح:
الحل البديل المقترح لا يعمل في حالتي ، لأنه يتوقف فقط عن عرض التحذير ، لكنه لا يحل مشكلة الذاكرة.
أتساءل عما إذا كانت هذه المشكلة ستؤثر على أداء التطبيق في وضع الإصدار.
حل الحل المذكور أعلاه هذه المشكلة بالنسبة لي أيضًا ، على 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
. نادرًا ما يحدث ولكن:
لقد تمكنت من إعادة إنشاء هذه المشكلة عن طريق إضافة رموز التطبيق إلى الدليل 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
. نادرًا ما يحدث ولكن:
تسبب 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.
التعليق الأكثر فائدة
الرجاء التوقف عن إضافة
+1
s ، فهذا يؤدي إلى إنشاء إشعارات بريد إلكتروني لا تضيف أي معلومات. استخدم ميزة "إضافة رد فعل" بدلاً من ذلك.