有这样一个组件 他可以控制页面跳转 返回,在移动端叫做导航控制器, 在RN中叫路由

我们使用的  react-native-navigation 是一个开源组件库
介绍:A complete native navigation solution for React Native - nav bars, tabs, drawer, modals
这个组件库的功能很强大,涵盖了类似底部导航的TabNavigator ,屏幕上方导航栏 StackNavigator以及抽屉效果的DrawerNavigator

1.StackNavigator :类似于普通的Navigator,屏幕上方导航栏 
2.TabNavigator:obviously, 相当于iOS里面的TabBarController,屏幕下方标签栏 
3.DrawerNavigator:抽屉效果,左侧滑出这种效果。

React-navigation之StackNavigator
这里我们学习使用一下StackNavigator来实现页面跳转

首先安装这个库,在我们项目的根目录下

命令行执行:npm install --save react-navigation

导入:

import {
    StackNavigator,
} from 'react-navigation';

接下来定义路由栈:
里面有两个组件 
第一个页面 电影列表页,Main
第二个页面 电影详情页 Detail。
分别用Main和Detail表示。

const App = StackNavigator({
    Main: {screen: MovieList, navigationOptions: {
        title: "推荐电影",
        headerLeft: null,
        headerStyle:{
            elevation: 0
        },
        headerTitleStyle:{ alignSelf:'center'},

    },},
   Detail: {screen: MovieDetail,
       navigationOptions:({navigation,screenProps}) =>({
               headerTitle: navigation.state.params.info,
           }

       )
   },

});

在电影列表页 ,点击某一个电影 ,跳转到具体的详情页

onPress={() => this.props.navigation.navigate('Detail',{info:movie.title})}

在电影详情页,通过this.props.navigation.state 获取传递过去的title,并展示出来。

  /**
 * 电影详情页
 */
'use strict'
import React, {Component} from 'react';
import styles from '../Styles/Main';
import {
    Text,
    View,
} from 'react-native';
export  default class MovieDetail extends Component{

    render() {
        // The screen's current route is passed in to `props.navigation.state`:
        const { params } = this.props.navigation.state
        return (
            <View>
                <Text style ={styles.Text}>{params.info}</Text>
            </View>
        );
    }

}

效果展示:

关于 Navigation 的使用参考

官网介绍:
https://reactnavigation.org/docs/intro/  Hello Mobile Navigation
https://reactnavigation.org/docs/navigators/stack

react-navigation使用技巧:

http://www.jianshu.com/p/2f575cc35780

React-navigation之StackNavigator:

http://blog.csdn.net/lu1024188315/article/details/73550028

-----------------------------期待大神们的到来

------------------------一---起分享,一起进步!需要你们

源码下载

React-Native进阶_5.导航 Naviagtion的更多相关文章

  1. React Native 系列(八) -- 导航

    前言 本系列是基于React Native版本号0.44.3写的.我们都知道,一个App不可能只有一个不变的界面,而是通过多个界面间的跳转来呈现不同的内容.那么这篇文章将介绍RN中的导航. 导航 什么 ...

  2. React Native中自定义导航条

    这是2017年年初开始的公司的项目,对于导航条的要求很高,Android和iOS上必须用一致的UI,按钮位置还有各种颜色都有要求,而且要适应各种奇葩要求. 尝试了一下当时React Native自带的 ...

  3. react native进阶

    一.前沿||潜心修心,学无止尽.生活如此,coding亦然.本人鸟窝,一只正在求职的鸟.联系我可以直接微信:jkxx123321 二.项目总结 **||**文章参考资料:1.  http://blog ...

  4. React Native底|顶部导航使用小技巧

    导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNati ...

  5. React Native顶|底部导航使用小技巧

    导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNati ...

  6. React-Native进阶_6.导航 Naviagtion传递数据并展示

    接着上面 Navigation 继续学习传递数据给下一个页面 onPress={() => this.props.navigation.navigate('Detail',{info:movie ...

  7. React Native 学习笔记--进阶(二)--动画

    React Native 进阶(二)–动画 动画 流畅.有意义的动画对于移动应用用户体验来说是非常必要的.我们可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更 ...

  8. React Native专题

    转载注明出处:地址:http://www.lcode.org本文出自:[江清清的技术专栏]本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶 ...

  9. React Native专题-江清清

    本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865  欢迎各位大牛, ...

随机推荐

  1. STS,MyEclipse中Maven配置

    本文以STS的环境做讲解,MyEclipse环境和STS差别不大,配置过程相似. STS是解压版的,启动后,可以看到已经有了Maven插件,, 但是,STS也同时给你了一个Maven,但是通常不建议使 ...

  2. minSdk(API 21) > deviceSdk(API 17)解决

    运行一个开源的项目出现“minSdk(API 21) > deviceSdk(API 17)”的提示,因为我用的是手机是sdk(API17)的,而项目要求是最低版本是minSdk(API 21) ...

  3. LIS学习笔记(两种算法)O(n^2) 和 O(nlogn)

    2017-09-02 10:34:21 writer:pprp 最长上升子序列,具体分析看代码:O(n^2)的做法,dp的思想 分析:每次读一个进行扫描,如果当前读入的这个要比之前的大, 说明有可能加 ...

  4. url拼接

    在做网页抓取的时候经常会遇到一个问题就是页面中的链接是相对链接,这个时候就需要对链接进行url拼接,才能得到绝对链接. url严格按照一定的格式构成,一般为如下5个字段: 详细可参考RFC:http: ...

  5. Android -- 多线程下载, 断点下载

    1. 原理图 2. 示例代码 需要权限 <uses-permission android:name="android.permission.INTERNET"/> &l ...

  6. R 中的哪些命令或者包让你相见恨晚?--转载知乎

    https://www.zhihu.com/question/24501195 节选: 看了这么多答案,觉得 Hadley Wickhamhad.co.nz 在R使用者的地位好高啊.其实我也觉得Had ...

  7. 安装mysql数据库中的技巧、错误排查

    针对解压版本5.7.16(博主使用的这个版本.在某些低版本中部分命令失效) 一.安装.初始化data目录(解压版解压后没有data目录) 安装:配置path环境变量,然后管理员运行命令提示符cmd   ...

  8. C# Memcached 缓存

    之前做的功能,程序可能有不足之处,但还是要记录下 ICacheStrategy.cs文件 public interface ICacheStrategy { /// <summary> / ...

  9. JavaScript高级程序设计-读书笔记(7)

    第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串. ...

  10. A4纸网页打印 html网页页面的宽度设置成多少

    A4纸竖向打印,html网页页面的宽度设置成多少?这个问题是我们大家所疑惑的,于是网上搜集整理下,希望可以帮助你们 最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 在公制长度单位与屏幕 ...