React Native 设置主页屏幕/主要活动 [英] React Native Set Homepage Screen / Main Activity

查看:86
本文介绍了React Native 设置主页屏幕/主要活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 react-native 的新手.我使用 AtomNuclide 作为我的 react-native 开发的 IDE.

I'm new in react-native. I use Atom and Nuclide as IDE for my react-native development.

好吧,我使用 expo init 来构建我的项目.我使用了带有 3 个导航底部栏的项目示例.

Well, I use expo init to build my project. I used project example with 3 navigation bottom bar.

export default createBottomTabNavigator({
  HomeStack,
  LinksStack,
  SettingsStack
});

我的 HomeStack 变量

My HomeStack variable

const HomeStack = createStackNavigator({
  Home: HomeScreen,
});

HomeStack.navigationOptions = {
  tabBarLabel: 'Home',
  tabBarIcon: ({ focused }) => (
    <TabBarIcon
      focused={focused}
      name={
        Platform.OS === 'ios'
          ? `ios-information-circle${focused ? '' : '-outline'}`
          : 'md-information-circle'
      }
    />
  ),
};

我使用 react-navigation 在屏幕之间导航.它看起来不错.但是,我需要用户在 HomeStack 加载之前进入我的登录屏幕.假设它登录屏幕.所以屏幕流像波纹管

I used react-navigation to navigate between screen. Its looks fine. However, I need user going to my login screen before HomeStack loaded up. Let say it LoginScreen. So the screen flow like bellow

Splash Screen -> LoginScreen -> HomeScreen (with Bottom Navigation)

如何在 react-native 上设置主屏幕?我一直在寻找几个 S/O 问题并在 Medium 上发帖,但没有找到我要找的任何东西.

How to set main screen on react-native? I have been looking several S/O question and post on Medium but didn't catch up anything I looking for.

我修改了 MainTabNavigator.js 如下

I have modified MainTabNavigator.js as bellow

import LoginScreen from '../screens/LoginScreen';

const LoginStack = createStackNavigator({
  Index: LoginScreen,
});

LoginStack.navigationOptions = {
  tabBarLabel: 'Index',
  tabBarIcon: ({ focused }) => (
    <TabBarIcon
      focused={focused}
      name={
        Platform.OS === 'ios'
          ? `ios-information-circle${focused ? '' : '-outline'}`
          : 'md-information-circle'
      }
    />
  ),
};

我一直在寻找一个完整的项目来设置默认主屏幕,但没有找到任何代码部分来设置默认主屏幕.谢谢各位

I've been looking for a whole project to set up default main screen and not found any code section to set up default main screen. Thanks Guys

推荐答案

React Navigation 为您的应用提供了一种在屏幕之间切换的方式.根据您的要求 Splash Screen ->登录屏幕 ->HomeScreen(带底部导航) 嵌套导航堆栈将与 StackNavigator 一起使用TabNavigator.

React Navigation provides a way for your app to transition between screens. As per your require Splash Screen -> LoginScreen -> HomeScreen (with Bottom Navigation) nested navigation stack will be used with StackNavigator & TabNavigator.

对于主屏幕需要创建 StackNavigator:

for Home screen need to create StackNavigator:

const stackNavigationHome = createStackNavigator({ Home , HomeDetail});

对于设置屏幕 StackNavigator 如下所示:

For settings screen StackNavigator like as below:

const stackNavigationSetting = createStackNavigator({ Settings},{headerMode: 'none'});

HomeSettings 屏幕将在 TabNavigator 中:

Both Home & Settings screen will be in a TabNavigator:

const TabNavigator = createBottomTabNavigator({
  home: stackNavigationHome,
  settings: stackNavigationSetting,
});

在堆栈的初始点,您需要一个带有登录名和选项卡的堆栈导航,如下所示:

At initial point of stack you need a stack navigation with login and tab as below:

const stackNavigationLogin = createStackNavigator({ Login, TabNavigator},{headerMode: 'none'});

导航结构到此完成,现在需要创建App容器:

Navigation structure completed here, now need to create App container :

export default createAppContainer(stackNavigationLogin);

您可以在 Github 上找到完整的

You can find complete source on Github

这篇关于React Native 设置主页屏幕/主要活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆