react-navigation 3.x版本的使用

 

安装配置请看: 

react-navigation 3.x版本的安装以及react-native-gesture-handler配置

 

2.0以前版本:

  • StackNavigator - 一次只渲染一个页面,并提供页面之间跳转的方法。 当打开一个新的页面时,它被放置在堆栈的顶部
  • TabNavigator - 渲染一个Tab选项卡,让用户可以在几个Tab页面之间切换
  • DrawerNavigator - 提供一个从屏幕左侧滑入的抽屉,类似bilibili和QQ的隐藏在左侧的内容栏功能

新版本:

  StackNavigator  --> createStackNavigator  

  TabNavigator  --> createBottomTabNavigator 也可以使用

  createStackNavigator  返回的结果需要再用createAppContainer包裹  const MainNavigator = createAppContainer(stackNavigator );

const TabBar = createBottomTabNavigator(
  {
    // 1:
    one: {
      screen: FirstPage,
      navigationOptions: () => ({
          tabBarIcon: ({ tintColor, focused  }) => (
            <MaterialCommunityIcons name="star-face" size={35} color={tintColor} />
          )
      })
    },
    //2:
     two: {
      screen: TwoPage,
      navigationOptions: () => ({
          tabBarIcon: ({ tintColor, focused  }) => (
            <MaterialCommunityIcons name="star-circle-outline" size={35} color={tintColor} />
          )
      })
    },
    //+:
    plus: {
      screen: PlusPage,
      navigationOptions: () => ({
          tabBarIcon: ({ tintColor, focused  }) => (
              focused ? <Ionicons name='md-add' size={45}  color={focused ? '#fb7299' : '#999'}/>
              : 
              <Ionicons name='md-add' size={45}  color={focused ? '#fb7299' : '#999'}/>
          )
      })
    },
    // 3: 
    three: {
      screen: ThreePage,
      navigationOptions: () => ({
          tabBarIcon: ({ tintColor, focused }) => (
            <Ionicons name="ios-color-filter" size={35} color={tintColor} />
          )
      })
    },
    //4:
    four: {
      screen: FourPage,
      navigationOptions: () => ({
          tabBarIcon: ({ tintColor, focused  }) => (
            <MaterialCommunityIcons onPress={() => {alert(tintColor)}} name="account-outline" size={35} color={tintColor} />
          )
      })
    }
  },
  {
    initialRouteName: 'one', // 初始化页面
    //tabBarComponent: CustomTabBar,
    tabBarOptions: {
      activeTintColor: '#fb7299',
      inactiveTintColor: '#999'
    }
}

const StackNavigator = createStackNavigator(
  {
    MainTab: {  //路由
      screen: TabBar,
      navigationOptions: {
          header: null,
      }
    }
  }, 
  {
    initialRouteName: "MainTab"
  }
);

const MainNavigator = createAppContainer(StackNavigator);

export default class MainComponent extends Component {
    constructor(props) {
        super(props);
        this.state = {};
    }

    render() {
        return (
            <View style={{flex: 1}}>
                <MainNavigator  />
            </View>
        );
    }
}

 

转载于:https://www.cnblogs.com/nangezi/p/10625611.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值