【滴水石穿】rn
这个项目还不错,还比较全
先放项目地址:https://github.com/ShionHXC/rn
项目算是一个完整的APP
有用到redux-thunk存储数据,算的上是一个普通的比较完整的APP

别的里面就是一些页面

//index.js
//根index.js引用的是AppNavigator
/**
* @format
* @lint-ignore-every XPLATJSCOPYRIGHT1
*/
import { AppRegistry } from 'react-native'
import AppNavigator from './js/navigator/AppNavigator'
import { name as appName } from './app.json'
AppRegistry.registerComponent(appName, () => AppNavigator)
app.js是没有使用的
分析项目目录

我们来看代码
//这个基本上定义了最热页面的所有东西
import {
createStackNavigator,
createSwitchNavigator,
createAppContainer
} from 'react-navigation'
//loading页面
import WelcomePage from './../page/WelcomePage'
//
import HomePage from './../page/HomePage'
import DetailPage from './../page/DetailPage'
import FetchDemoPage from './../page/FetchDemoPage'
import AsyncStorageDemoPage from './../page/AsyncStorageDemoPage'
import DataStoreDemoPage from './../page/DataStoreDemoPage'
const InitNavigator = createStackNavigator({
WelcomePage: {
screen: WelcomePage,
navigationOptions: {
header: null
}
}
})
const MainNavigator = createStackNavigator({
HomePage: {
screen: HomePage,
navigationOptions: {
header: null
}
},
DetailPage: {
screen: DetailPage,
navigationOptions: {
// header: null
}
},
FetchDemoPage: {
screen: FetchDemoPage,
navigationOptions: {}
},
AsyncStorageDemoPage: {
screen: AsyncStorageDemoPage,
navigationOptions: {}
},
DataStoreDemoPage: {
screen: DataStoreDemoPage,
navigationOptions: {}
}
})
export default createAppContainer(
createSwitchNavigator(
{
Init: InitNavigator,
Main: MainNavigator
},
{
defaultNavigationOptions: {
header: null
}
}
)
)
//这个里面定义的是全局导航
//js/navigator/NavigationUtil.js
/*
全局导航控制类
*/
export default class NavigationUtil {
/**
* 返回上一页
*
* @static
* @param {*} navigation
* @memberof NavigationUtil
*/
static goBackTo(navigation) {
navigation.goBack()
}
/**
* 跳转到首页
* @static
* @param {*} params
* @memberof NavigationUtil
*/
static resetToHomePage(params) {
const { navigation } = params
navigation.navigate('Main')
}
/**
* 跳转到指定页面并传递页面参数
*
* @static
* @param {*} page
* @param {*} params
* @memberof NavigationUtil
*/
static goPage(page, params) {
const navigation = NavigationUtil.navigation
if (!navigation) {
console.warn('Navigation can be null')
return
}
navigation.navigate(page, { ...params })
}
}
这个项目写的好复杂啊~
【滴水石穿】rn的更多相关文章
- 基于RN开发的一款视频配音APP(开源)
在如今React.ng.vue三分天下的格局下,不得不让自己加快学习的脚步.虽然经常会陷入各种迷茫,学得越多会发现不会的东西也被无限放大,不过能用新的技术作出一些小项目小Demo还是会给自己些许自信与 ...
- WebView JS与RN进行通讯
RN0.37终于官方增加了WebView与React Native的通讯,之前一真使用的是第三方控件React-Native-WebView-Bridge,但不是知道怎么回事这个第三方控件喊了很长时间 ...
- ReactNative新手学习之路02第一个RN项目
开始第一个RN项目(iOS版)我的电影列表0.1版,后面做列表版 打开上一节项目 index.ios.js,android打开index.android.js.我这里使用的是Atom编辑器,你也可以使 ...
- RN中的onChangeText
在RN学习中,按照一本书中案例书写TextInput框, 书中给了两种写法 写法1: <TextInput style={styles.pswInputStyle} placeholder='请 ...
- 去重 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN
关键字 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN 按照分组字段进行排序并标编号 ROW_NUMBER() OVER(PARTITIO ...
- React Native填坑之旅--重新认识RN
如同黑夜里的一道光一样,就这么知道了F8. F8是每年一次Facebook每年一次的开发者大会.每次大会都会release相应的APP,iOS.Android都有.之前都是用Native开发的,但是2 ...
- RN项目搭建
一.安装JDK 由安装包引起,你可以尝试一下新包 注意安装路径要不同 或者重新安装Windows Installer 运行CMD 1.输入 sfc /SCANNOW 回车 2.完成后输入 msiexe ...
- RN学习1——前奏,app插件化和热更新的探索
react_native_banner-min.png React Native(以下简称RN)有大量前端开发者的追捧.前端开发是一个活跃的社区,一直尝试着一统前后端,做一个全栈开发,RN就是他们在客 ...
- select * from (select P.*,ROWNUM RN FROM(select * from Mp_Relatedart where pubbaseid=785 order by ID ASC )P)M WHERE M.RN>2 and M.RN <= 7
select * from (select P.*,ROWNUM RN FROM(select * from Mp_Relatedart where pubbaseid=785 order by ID ...
随机推荐
- 嘴巴题7 BZOJ1426: 收集邮票
Time Limit: 1 Sec Memory Limit: 162 MB Submit: 546 Solved: 455 [Submit][Status][Discuss] Description ...
- Nginx 的常用命令
nginx命令,先来一波基本操作: start nginx // 启动Nginx nginx -t // 测试配置文件 nginx -v // 查看Nginx版本 nginx -V // 查看Ngin ...
- shell 启动脚本
启动脚本是bash启动时自动执行的脚本.用户可以把一些环境变量的设置和alias.umask设置放在启动脚本中,这样每次启动Shell时这些设置都自动生效.思考一下,bash在执行启动脚本时是以for ...
- [转] 允许远程用户登录访问mysql的方法
需要手动增加可以远程访问数据库的用户. 方法一.本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项 ...
- python 可迭代对象,迭代器,生成器的区别及使用
可迭代对象 可迭代对象类型:list,dict,tuple,str,set,deque等 如何判断一个对象是否是可迭代对象,可以通过dir()方法看它里面有没有__iter__方法,如果有这个方法就是 ...
- Hadoop 集群规模要多大
- Luogu P1273 有线电视网(树形dp+背包)
P1273 有线电视网 题面 题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部 ...
- 使用jquery封装一个可以复用的提示框
首先在html中 <div class="backcap"> <div class="diolag"> <div class=&q ...
- 关于JavaScript的43道题①
最近在github上大火的43到js代码题,有很多人搬运.原链接https://github.com/lydiahallie/javascript-questions 1.下面代码的输出是什么? fu ...
- Spring_Hibernate整合准备
1,Spring整合Hibernate 整合什么? 1)由IOC容器来生成Hibernate的SessionFactory 2)让Hibernate使用上Spring的声明式事务 2,整合步骤 1 ...