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能够在更轻量级的微服务架构中发挥重要作用 课 ...
随机推荐
- 将一个文件中的内容,在另一个文件中生成. for line in f1, \n f2.write(line)
将一个文件中的内容,在另一个文件中生成. 核心语句: for line in f1: f1中的所有一行 f2.write(line) ...
- Java 输入输出流总结
1. 运用BufferedInputStream 读取文件流和BufferedOutputStream写文件流: protected static void writeFile2(String inp ...
- Java 处理cookie的方法
一.java创建cookie 方法一: Response.Cookies["userName"].Value = "patrick"; Response.Coo ...
- [咸恩静][Good Bye]
歌词来源:http://music.163.com/#/song?id=35437298 作曲 : 安英民 [作曲 : 安英民] 作词 : 安英民/로코 [作词 : 安英民/lo-Ko] 나를 떠나버 ...
- super深究
super的入门使用: 在类的继承中,如果定义某个方法,该方法会覆盖父类的同名方法,但有时候我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可以通过使用super来实现.比如: cla ...
- Cent OS home下中文目录改成英文目录
如果安装了中文版的Cent OS之后,root目录和home目录下会出现中文的路径名,如“桌面”.“文档”.“图片”.“公共的”.“下载”.“音乐”.“视频”等目录,这样在命令行上操作十分的不方便,需 ...
- SPOJ-SUBSET Balanced Cow Subsets
嘟嘟嘟spoj 嘟嘟嘟vjudge 嘟嘟嘟luogu 这个数据范围都能想到是折半搜索. 但具体怎么搜呢? 还得扣着方程模型来想:我们把题中的两个相等的集合分别叫做左边和右边,令序列前一半中放到左边的数 ...
- Day18 (二)反射
反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java ...
- Property Injection in Asp.Net Core (转载)
问: I am trying to port an asp.net application to asp.net core. I have property injection (using ninj ...
- linux文件系统初始化过程(6)---执行init程序
一.目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs.proc文件系统,加载了磁盘驱动程序驱动程序等.接下来,内核跳转到用户空间的init程序,由ini ...