react-native初体验(2) — 认识路由
如果学习止步于 hello world, 那么人生也太没意思了。这次要做一个看起来真实的应用。多添加几个页面,让他们可以交互,动起来。
react-native 官方推荐使用 react-navigation 作路由管理,下面我将尝试使用他。
根目录下面建立 pages 文件夹,并在里面建立 home.js 和 /user/index.js 两个文件,接下来就可以在这个两个视图之间进行跳转了
mkdir pages
cd pages
touch home.js
mkdir user
cd user
touch index.js
安装路由管理
安装
yarn add react-navigation
引入
// app.js
import { createStackNavigator } from 'react-navigation';
建立路由导航
修改 app.js, 使用 createStackNavigator 创建堆栈卡片式的导航。
import { createStackNavigator } from 'react-navigation';
import Home from './pages/home.js';
import Profile from './pages/user/index.js';
const App = createStackNavigator({
  Home: { screen: Home },
  Profile: { screen: Profile },
});
export default App
这里建立了两个视图的导航, yarn ios 试一下,报错了,原因是新建的2个视图面还是空的,没有返回一个 react compontent。现在关掉服务,在里面写2个组件。
多个页面
在两个页面里面随便写一些东西,navigationOptions 是路由的配置项,设置后会自动在视图顶部生成一个原生的导航组件。
- home.js
// home.js
import ...;
export default class Home extends React.Component {
  static navigationOptions = {
    title: '首页',
  };
  render() {
    return (...);
  }
}
const styles = StyleSheet.create(...);
- user/index.js
// user/index.js
import ...;
export default class Home extends React.Component {
  static navigationOptions = {
    title: '个人中心',
  };
  render() {
    return (...);
  }
}
const styles = StyleSheet.create(...);
跳转和返回
从一个页面跳转到另一个页面,需要调用 navigate 方法, 点击 Button, 会在当前视图上叠加 Profile 视图。点击 Profile 上边的返回按钮,会自动返回到 Home 视图。
// home.js
import ...;
export default class Home extends React.Component {
  static navigationOptions = {
    title: '首页',
  };
  render() {
  const { navigate } = this.props.navigation;
  return (
    <Button
        title="去个人中心"
        onPress={() =>
          navigate('Profile', { name: 'Jane' })
        }
     />
    );
  }
}
const styles = StyleSheet.create(...);
react-native初体验(2) — 认识路由的更多相关文章
- spring native 初体验实现 小米控制美的空调
		目前关于 spring native 分享的文章还比较少 写这篇文章的主要目前是分享一下自己写的一个 小米控制美的空调 的程序 集成 spring native 过程中碰到的一些问题和解决方法 先放地 ... 
- H5、React Native、Native应用对比分析
		每日更新关注:http://weibo.com/hanjunqiang 新浪微博!iOS开发者交流QQ群: 446310206 "存在即合理".凡是存在的,都是合乎规律的.任何新 ... 
- AngularJS路由系列(3)-- UI-Router初体验
		本系列探寻AngularJS的路由机制,在WebStorm下开发. AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新. ... 
- react native 导航路由组件react-navigation的使用
		navigation的几个难点和问题: 1.底部tab是否可以加上中间的大按钮? 如果加上,如何触发事件? js文件放哪? 2.navigation的登录注册页面.成功后应该不能返回刚刚的登录页面?清 ... 
- 初窥React Native
		这两天在学习react native,被虐得布耀布耀的,运行一个hello world花了一天时间(手动捂脸). 由于是跟着官网走,所以一开始便是开发环境的搭建.其他的就不说了(详情见 React N ... 
- 【Knockout.js 学习体验之旅】(1)ko初体验
		前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ... 
- React Native 之TabBarIOS
		前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ... 
- React Native 之 项目实战(一)
		前言 本文有配套视频,可以酌情观看. 文中内容因各人理解不同,可能会有所偏差,欢迎朋友们联系我. 文中所有内容仅供学习交流之用,不可用于商业用途,如因此引起的相关法律法规责任,与我无关. 如文中内容对 ... 
- React Native在特赞的应用与实践
		基于React技术栈构建开发前端项目,并使用React Native开发特赞移动APP 目前正在使用Node.js开发和维护特赞服务网关,希望Node.js能够在更轻量级的微服务架构中发挥重要作用 课 ... 
随机推荐
- 18年11月5日 NOIP模拟赛
			T1 题解 对于k=100的情况,贪心 对于100%的数据 可以发现,当前的决策只对后面的开采有影响,且剩余耐久度与之后的开采收益成正比,如果倒着考虑这个问题,得出i-n的星球1点耐久度所能获得的最大 ... 
- #001 CSS快速入门讲解
			CSS入门讲解 HTML人+CSS衣服+JS动作=>DHTML CSS: 层叠样式表 CSS2.0 和 CSS3.0 版本,目前学习CSS2, CSS3只是多了一些样式出来而已 CSS 干啥用的 ... 
- NSProxy应用例子
			动态代理模式的应用很多,特别是在不能修改被代理类的前提下,要对执行某些方法时需要打log或者捕捉异常等处理时,是一个非常方便的方法.只需要少量修改客户端(场景类)代码和添加一个代理类就可以实现,这个符 ... 
- 【洛谷】【treap/堆】P2073 送花
			[题目描述:] 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花束,他不断地向里面添加花.他有以下几种操作: 操作 含义 1 W C 添加一朵美丽值为W,价格为C的花. 3 小 ... 
- Hive学习之路 (二)Hive安装
			Hive的下载 下载地址http://mirrors.hust.edu.cn/apache/ 选择合适的Hive版本进行下载,进到stable-2文件夹可以看到稳定的2.x的版本是2.3.3 Hive ... 
- Day7 访问权限
			构造者模式思想 进行初始化,解决了多个构造器重载,构造器参数过多记不住的情况. package day7;//声明一个程序包 class Employee{ private String name; ... 
- kubeadm init 时从本地私有仓库下载镜像
			#kubeadm init 时从本地私有仓库下载镜像 images=( gcr.io/google_containers/kube-proxy-amd64:v1.6.1 gcr.io/google_c ... 
- TensorFlow安装-Windows
			参考:https://blog.csdn.net/dou3516/article/details/77836459 一.安装环境 TensorFlow即可以支持CPU,也可以支持CPU+GPU.前者的 ... 
- pom  xml testng
			<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId ... 
- gulp插件 run-sequence(同步执行任务)
			功能描述 gulp默认使用最大并发数执行任务,也就是说所有的任务几乎都是同时执行,而不会等待其它任务.但很多时候,任务是需要有先后次序的,比如要先清理目标目录,然后再执行打包. run-sequenc ... 
