我正在创建一个本机应用程序,但我需要使用目标C来构建我的自定义UIView.但问题是这个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添加到您的项目中并正常引用.