安装配置请看:

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>
);
}
}

react-navigation 3.x版本的使用的更多相关文章

  1. React Navigation / React Native Navigation 多种类型的导航结合使用,构造合理回退栈

    React Navigation 更新到版本5已经是非常完善的一套导航管理组件, 提供了Stack , Tab , Drawer 导航方式 , 那么我们应该怎样设计和组合应用他们来构建一个完美的回退栈 ...

  2. react-native 学习 ----- React Navigation

    很久没有的登陆博客园了,密码都是找回的,从当年的大学生已经正常的走上了程序员的道路,看到之前发的博客还是写的android,现在自己已经在使用了react-native了. 大学毕业了,做了java后 ...

  3. React Native 0.50版本新功能简介

    React Native在2017年经历了众多版本的迭代,从接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移动跨平台方案.虽然,目前存在着很多的功能和性 ...

  4. [RN] 04 - React Navigation

    react-navigation和react-router的对比: 支持的平台: react-navigation: react-native react-router: react-native.r ...

  5. React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方

    以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation  react-native ...

  6. Facebook力推导航库:React Navigation使用详解

    本文来自Songlcy投稿:文章地址:http://blog.csdn.net/u013718120/article/details/72357698 一.开源库介绍 今年1月份,新开源的react- ...

  7. React-native 导航插件React Navigation 4.x的使用

    React-native 导航插件React Navigation 4.x的使用 文档 英文水平可以的话,建议直接阅读英文文档 简单使用介绍 安装插件 yarn add react-navigatio ...

  8. react navigation goBack()返回到任意页面(不集成redux) 一

    方案一: 一.适用场景:在app端开发的时候,相反回到某一个页面的时候保持跳转页面的所有状态不更新,也就是说不触发新的生命周期. 例如:A——>B——>C——>D 要想从D页面直接返 ...

  9. react-native导航器 react navigation 介绍

    开发环境搭建好之后,想要进一步了解react-native,可以先从react-native官网上的电影列表案例入手: https://reactnative.cn/docs/0.51/sample- ...

  10. React Navigation & React Native & React Native Navigation

    React Navigation & React Native & React Native Navigation React Navigation https://facebook. ...

随机推荐

  1. Centos系统更改yum源为163

    Centos安装好之后,按照网上教程对yum源进行修改,但更新之后发现总是提示更新失败,到163网站上查找资源发现目前大部分网上的教程都写错地址了,呵呵 下面是正确的办法,请参考 1.进入存放源配置的 ...

  2. 2018.12.21 Cmos- RF

    1 PSK 趋肤效应 50欧匹配 smith s参数 :在datasheet里面会有 Information coding Bluetooth : Continous Variable Slope D ...

  3. New Concept English Two 26 70

    $课文68  纠缠不休 712. I crossed the street to avoid meeting him, but he saw me and came running towards m ...

  4. 手动整合实现SSH项目开发02

    在bean包下建立User类和User.hbm.xml文件,实现User类和数据库表User的映射关系,具体User类不多说,User.hbm.xml如下: <?xml version=&quo ...

  5. BZOJ2124: 等差子序列(树状数组&hash -> bitset 求是否存在长度为3的等差数列)

    2124: 等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 2354  Solved: 826[Submit][Status][Discuss ...

  6. Log4j(一):Log4j将日志信息写入数据库

    前言 为了监听一些数据的采集等功能,需要随时监听设备的状态,所以需要运行的时候将日志打入到数据库中. 正文 第一步: 首先是jar包,由于我使用的是springboot,所以,在springboot- ...

  7. TimescaleDB 简单试用

    TimescaleDB 是一个对于pg进行了改造的时序数据库 安装测试使用docker 安装&&运行 docker run -d --name timescaledb -p 5432: ...

  8. RK3288 开机动画旋转

    CPU:RK3288 系统:Android 5.1 如果开机动画与屏显示方向不一致,有两种方法可以更改开机动画方向. 一.RK3288默认的开机动画是由两张图片组合而成的,可以直接旋转两张图片的方向. ...

  9. 学习blus老师js(5)--DOM操作应用高级

    一.表格应用 - 1 获取 tBodies.tHead.tFoot.rows.cells 一个表格可以有很多tbody,所以tBodies是数组: 一个表格只能有一个thead和tfoot,所以tHe ...

  10. nc工具用法

    http://man.linuxde.net/nc_netcat nc命令用法举例 什么是nc