React Native踩坑日记(三)—— react-navigation之nav于tab嵌套使用

前提

本人入坑RN的时候, RN已经是0.46版本了. 按照RN中文网上的提示,今年年初(0.44版本)以后的RN导航条控制,官方已经不推荐使用原先的navigator组件。
在没有历史包袱的情况下,直接接触了官方推荐的 react-navigation

说是官方提供的组件,但很奇怪的是,我们在初始化RN工程的时候,node_modules默认是不会安装这个组件的,需要我们cd到工程目录,然后运行下面这句代码

npm install --save react-navigation

react-navigation(以下简称r-nav)包含三个导航模块。这一点是让我觉得很有亲和力的。特别是抽屉效果,我们iOS实现抽屉效果比较常用的就是RESideMenu,回调和代理太多,用起来还是比较笨重的。r-nav提供了一个很好的DrawerNavigator框架,文章后面会讨论(暂时先忽略)

  • StackNavigator
  • TabNavigator
  • DrawerNavigator

参考文章

参考部分主要有两块,官方文档和一篇总结的非常好(带有demo)的博客。

  • 官方文档
  • 博客参考
    这篇博客中很好的总结了具体的用法及参数的含义。这里就不赘述了。
    比较麻烦的是用react-navigation时候,要设置的参数特别多

StackNavigator组件的用法和ios中的差异 —— 设计思路

iOS的情况

我们iOS中常用的 navigationController, 经常会遇到一些情况,不管是用代码创建的还是用storyboard,都会有一些设置,是针对整个导航栏的.比如整个导航栏的tintColor,backgroundColor等等,再比如我们希望在一些特定的页面,我们希望navigationBar.hidden = YES.

为了实现类似的功能,StackNavigator中引入了一个navigationOptions的变量, 包含了以下变量

  • title: 这个即可以作为头部标题,也可以作为返回标题和Tab标题
  • header: 可以设置一些导航的属性,如果隐藏顶部导航栏只要将这个属性设置为null
  • headerTitle: 设置导航栏标题,推荐
  • headerBackTitle: 回退标题
  • headerTruncatedBackTitle: 当回退标题不能显示的时候显示此属性的标题,比如回退标题太长了
  • headerRight: 定义导航栏右边视图
  • headerLeft: 定义导航栏左边视图
  • headerStyle: 定义导航栏的样式,比如背景色等
  • headerTitleStyle: 定义标题的样式
  • headerBackTitleStyle: 定义返回标题的样式
  • headerTintColor: 定义导航条的tintColor,会覆盖headerTitleStyle中的颜色
  • gesturesEnabled: 定义是否能侧滑返回,iOS默认true,Android默认false
    样式示意图.png

    注,在安卓中, 我们的标题会变成靠左,这时候需要添加以下代码来设置

        headerTitleStyle: { fontSize: 18, color: '#232323', alignSelf: 'center',
                 marginLeft: Platform.OS === 'ios' ? 0 : -25,
          },//标题颜色/样式
    

而其实可以设置navigationOptions的地方有三处,下面分别来说明

  • 在设置路由的时候,就可以设置分页面的nav属性,

navigationOptions: {}; 此处设置了, 会覆盖组件内的 static navigationOptions 设置)

  • 在新建的组件中,通过 static navigationOptions = {}来设置。

    设置nav的路由

  • 在设置初始化页面中设置根分页的navigationOptions

    设置跳转属性和初始页面的属性.png


踩坑一 —— 自动补全(文章这块后续会持续修改)

TBD

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容