真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

ReactNative混合開發(fā)多入口加載方式的示例分析

小編給大家分享一下React Native混合開發(fā)多入口加載方式的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

10年積累的成都網站建設、網站制作經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有新建免費網站建設讓你可以放心的選擇與我們合作。

在已有app混合開發(fā)時,可能會有多個rn界面入口的需求,這個時候我們可以使用RCTRootView中的moduleName或initialProperties來實現(xiàn)加載包中的不同頁面。

目前使用RCTRootView有兩種方式:

  • 使用initialProperties傳入props屬性,在React中讀取屬性,通過邏輯來渲染不同的Component

  • 配置moduleName,然后AppRegistry.registerComponent注冊同名的頁面入口

這里貼出使用0.60.5版本中ios項目的代碼片段:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
 RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
            moduleName:@"AwesomeProject"
            initialProperties: @{
              @"screenProps" : @{
                @"initialRouteName" : @"Home",
                },
              }];

 rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
 UIViewController *rootViewController = [UIViewController new];
 rootViewController.view = rootView;
 self.window.rootViewController = rootViewController;
 [self.window makeKeyAndVisible];
 return YES;
}

initialProperties

這種方式簡單使用可以通過state判斷切換界面,不過項目使用中還是需要react-navigation這樣的導航組件搭配使用,下面貼出的代碼就是結合路由的實現(xiàn)方案。

screenProps是react-navigation中專門用于傳遞給React組件數據的屬性,createAppContainer創(chuàng)建的組件接受該參數screenProps,并傳給訪問的路由頁面。

class App extends React.Component {
  render() {
    const { screenProps } = this.props;

    const stack = createStackNavigator({
      Home: {
        screen: HomeScreen,
      },
      Chat: {
        screen: ChatScreen,
      },
    }, {
      initialRouteName: screenProps.initialRouteName || 'Home',
    });

    const AppContainer = createAppContainer(stack);

    return (
      
    );
  }
}

moduleName

我們按照下面代碼注冊多個頁面入口之后,就可以在原生代碼中指定moduleName等于AwesomeProject或者AwesomeProject2來加載不同頁面。

AppRegistry.registerComponent("AwesomeProject", () => App);
AppRegistry.registerComponent("AwesomeProject2", () => App2);

以上是“React Native混合開發(fā)多入口加載方式的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網站名稱:ReactNative混合開發(fā)多入口加載方式的示例分析
本文路徑:http://weahome.cn/article/ppceoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部