Как я могу решить: RCTBridge требовал dispatch_sync для загрузки в React Native с использованием рабочих пространств yarn?

Я следую за статьей о среде: Прохождение React Native 0.63 Monorepo осторожно, чтобы рабочие области пряжи работали с react-native. Everhtings работает, я могу создать свое приложение для iOS и Android, а также работает Metro Bundler, но я получаю следующее предупреждение от сборщика метро, ​​когда создаю свое приложение для iOS с yarn workspace mobile ios

RCTBridge required dispatch_sync to load RCTDevLoadingView. This may lead to deadlocks

Я не получаю это предупреждение, если не использую react-native с рабочими пространствами yarn. Поэтому я подозреваю, что ошибка вызвана моей настройкой monorepo.

Вы знаете, как я могу удалить это предупреждение?


person Niklas    schedule 14.04.2021    source источник


Ответы (2)


Откройте свой /ios/YourAppName/AppDelegate.m

#import "AppDelegate.h"

// ADD THIS
#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
// TILL HERE

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
// THIS CONDITION
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
// TILL HERE
  ...
}

источник здесь

person Hussain Pettiwala    schedule 09.06.2021

После повторного открытия терминала и повторной сборки приложения предупреждение больше не появлялось.

person Niklas    schedule 14.04.2021