React-Native进阶_5.导航 Naviagtion
有这样一个组件 他可以控制页面跳转 返回,在移动端叫做导航控制器, 在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的更多相关文章
- React Native 系列(八) -- 导航
前言 本系列是基于React Native版本号0.44.3写的.我们都知道,一个App不可能只有一个不变的界面,而是通过多个界面间的跳转来呈现不同的内容.那么这篇文章将介绍RN中的导航. 导航 什么 ...
- React Native中自定义导航条
这是2017年年初开始的公司的项目,对于导航条的要求很高,Android和iOS上必须用一致的UI,按钮位置还有各种颜色都有要求,而且要适应各种奇葩要求. 尝试了一下当时React Native自带的 ...
- react native进阶
一.前沿||潜心修心,学无止尽.生活如此,coding亦然.本人鸟窝,一只正在求职的鸟.联系我可以直接微信:jkxx123321 二.项目总结 **||**文章参考资料:1. http://blog ...
- React Native底|顶部导航使用小技巧
导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNati ...
- React Native顶|底部导航使用小技巧
导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNati ...
- React-Native进阶_6.导航 Naviagtion传递数据并展示
接着上面 Navigation 继续学习传递数据给下一个页面 onPress={() => this.props.navigation.navigate('Detail',{info:movie ...
- React Native 学习笔记--进阶(二)--动画
React Native 进阶(二)–动画 动画 流畅.有意义的动画对于移动应用用户体验来说是非常必要的.我们可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更 ...
- React Native专题
转载注明出处:地址:http://www.lcode.org本文出自:[江清清的技术专栏]本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶 ...
- React Native专题-江清清
本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865 欢迎各位大牛, ...
随机推荐
- 20145312 《Java程序设计》第八周学习总结
20145312 <Java程序设计>第八周学习总结 学习笔记 Chapter 15时间与日期 15.1 日志 15.1.1 日志API简介 java.util.logging包提供了日志 ...
- 20145312 《Java程序设计》第2周学习总结
20145312 <Java程序设计>第2周学习总结 教材学习内容总结 1.1类型.变量与运算符 1.1.1类型 1.基本类型 整数:short(2字节).long(8字节).int(4字 ...
- OKR学习总结
OKR学习总结 背景:因为公司最近采用OKR工作法,所以来了解一下. 简介 OKR ——Object Key Results 主要分为两部分:O 和 KR ,就是目标和关键结果. 将这个丰满点描述,就 ...
- PyTorch源码解读之torch.utils.data.DataLoader(转)
原文链接 https://blog.csdn.net/u014380165/article/details/79058479 写得特别好!最近正好在学习pytorch,学习一下! PyTorch中数据 ...
- Java环境搭建指南
1.1 配置Java环境 1. 下载并安装Jdk1.7或Jdk1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.ht ...
- C#:手把手教你用C#打包应用程序(安装程序卸载程序)
摘要:本文介绍在C#中手把手教你用C#打包应用程序(安装程序卸载程序) 1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点 ...
- Sorl初始
Sorl是什么 ? Solr是Apache下的一个开源项目,使用Java基于Lucene开发的全文检索服务:是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可 ...
- quartz动态job工具类 serviceh注入问题
package com.heyi.yanglao.common.job.util; import cn.hutool.core.date.DateUtil; import lombok.extern. ...
- JDBC 插入大批量数据
时不时会有大量数据的插入操作,方式有多种,效率不同: 1. statement 2. prepareStatement 3. statement/prepareStatement + batch 4. ...
- gcc,gdb,make学习
实例学习gcc+gdb+make程序编译.链接.运行时头文件或动态链接库的查找 分四步: 预处理.编译.汇编.链接4steps:preprocess,compile,assemble,link