首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用yarn工作区的React Native中解决:"RCTBridge需要dispatch_sync to load“?

如何在使用yarn工作区的React Native中解决:"RCTBridge需要dispatch_sync to load“?
EN

Stack Overflow用户
提问于 2021-04-14 22:20:29
回答 2查看 5.8K关注 0票数 6

我遵循medium的文章:React Native 0.63 Monorepo walkthrough小心地使用react-native获得纱线工作区。一切正常,我可以构建我的iOS和安卓应用程序,也可以构建Metro Bundler,但当我使用yarn workspace mobile ios构建我的iOS应用程序时,metro bundler会给我以下警告

代码语言:javascript
复制
RCTBridge required dispatch_sync to load RCTDevLoadingView. This may lead to deadlocks

除非我在yarn工作区中使用react-native,否则我不会收到这个警告。因此,我怀疑这个错误是由我的monorepo设置生成的。

您知道如何删除此警告吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-09 12:08:58

打开你的/ios/YourAppName/AppDelegate.m

代码语言:javascript
复制
#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
  ...
}

here

票数 18
EN

Stack Overflow用户

发布于 2021-04-15 00:52:51

重新打开终端并再次构建应用程序后,警告不再出现

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67093549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档