加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – 单个应用程序中的多个RCTRootView

发布时间:2020-12-15 20:14:41 所属栏目:百科 来源:网络整理
导读:我正在创建一个本机应用程序,但我需要使用目标C来构建我的自定义UIView.但问题是这个UIView需要显示反应内容.例如反应文本输入和按钮.我正在考虑将RCTRootView(将具有这些反应组件)添加到Custom UIView,从而解决问题.但我目前正在使用一个RCTRootView.如何创
我正在创建一个本机应用程序,但我需要使用目标C来构建我的自定义UIView.但问题是这个UIView需要显示反应内容.例如反应文本输入和按钮.我正在考虑将RCTRootView(将具有这些反应组件)添加到Custom UIView,从而解决问题.但我目前正在使用一个RCTRootView.如何创建另一个并在我的代码中使用它.

编辑:
我确实理解我们可以从服务器how-to-rename-react-native-entry-file-index-ios-js添加不同的捆绑包但是当我在本地运行时如何使用它.

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@“main”withExtension:@“jsbundle”];

解决方法

像创建任何其他UIView一样创建另一个RCTRootView.

RCTRootView *someRootView = [[RCTRootView alloc] initWithBundleURL:someJsCodeLocation 
                                                        moduleName:@"SomeRootComponent" 
                                                     launchOptions:nil];

RCTRootView *anotherRootView = [[RCTRootView alloc] initWithBundleURL:anotherJsCodeLocation 
                                                           moduleName:@"AnotherRootComponent" 
                                                        launchOptions:nil];

您可以为所有RCTRootView指定相同的包(jsCodeLocation),或为每个RCTRootView指定不同的包.在任何一种情况下,最佳做法是使用不同的组件名称(moduleName):

AppRegistry.registerComponent('SomeRootComponent',() => SomeRootComponent);

AppRegistry.registerComponent('AnotherRootComponent',() => AnotherRootComponent);

如果您想维护多个bundle,则需要使用以下命令编译每个bundle:

curl 'http://localhost:8082/index1.ios.bundle?dev=false&minify=true' -o iOS/main1.jsbundle

curl 'http://localhost:8082/index2.ios.bundle?dev=false&minify=true' -o iOS/main2.jsbundle

然后可以将main1.jsbundle和main2.jsbundle添加到您的项目中并正常引用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读