Lean Engineer

リーンエンジニア〜効率的に実験しながら、技術を学ぶブログ

複数枚のReactNativeViewを、ネイティブアプリに表示する

 ReactNativeをネイティブアプリに表示する方法を書いた。表示するだけのページなどであれば、iOS/Androidが両方同じソースコードで管理できるため便利だ。

 さて、複数の固定ページを表示するには、どうしたらいいか?それは、ReactNative側のindex.jsで、AppRegistry.registerComponentしてあげれば良い。

 例えば、こんな感じ

import Page1 from './Page1';
import Page2 from './Page2';

AppRegistry.registerComponent("Page1", () => Page1);
AppRegistry.registerComponent("Page2", () => Page2);

 これらは、ビルドされ、index.bundleになるのだが、ネイティブ側で、ReactNativeのViewを作るときに、ModuleNameを設定することで、表示を分けることができる。

RCTRootView *rootView = [[RCTRootView alloc] 
        initWithBundleURL:jsCodeLocation
        moduleName:@"Page1"
        initialProperties:nil
        launchOptions:nil];

 これで、Page1が表示される。moduleNameをPage2にすれば、Page2が表示される。