【滴水石穿】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 ...
随机推荐
- 常用有三种json解析jackson、fastjson、gson。
jackson依赖包 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -- ...
- linux支持大容量硬盘
1.fdisk使用msdos格式分区,最大支持2T硬盘,要使用大于2T硬盘需使用parted命令使用GPT格式分区. 2.除修改分区格式外,linux内核需添加GPT分区格式支持,修改如下: CONF ...
- DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力
Data Lake Analytics 作为云上数据处理的枢纽,最近加入了通过IP地址查找对应的国家.省份.城市.ISP的函数, 今天带大家体验一下. 函数详细介绍 本次一共添加了下面这些函数: ip ...
- Flannel部署
目录 Flannel CNI集成 配置Docker使用Flannel 1.为Flannel生成证书 [root@linux-node1 ~]# cd /usr/local/src/ssl/ [root ...
- win7安装mysql8提示one more product requirements have not been satisified
点击否 然后查看一下到底缺啥,系统版本不一样,缺少的东西也不一定一样 去微软下就是了https://www.microsoft.com/en-us/download/details.aspx?id=4 ...
- idea长期使用
0. 如果你的idea(版本2019.02)是已过期状态则先上网找个激活码激活再进行下面步骤延长使用期至2089年 1. 附件下载地址: 链接: https://pan.baidu.com/s/1Tp ...
- MySQL示例数据导入
从官网下载示例数据,参考压缩文件中的README.txt,整理所得 /******************* 示例数据导入 *******************/ /** 官网下载 http://d ...
- 关于hive表同步类型问题
今天华为做实施的时候发现kylin做刷cube的时候发现源表数据类型不适合刷到kylin提供查询接口.问了下同事发现一个比较简单的解决办法. 源表是String类型,做hive视图可以做个hive表提 ...
- nfs服务安装配置
一.准备阶段 配置解析主机 检查版本及内核 二.服务端安装 1) 配置yum把下载好的软件留着,下次备用,不用再下载 cachedir=/var/cache/yum/$basearch/$releas ...
- php实现的支持断点续传的文件下载类
通常来说,php支持断点续传,主要依靠HTTP协议中 header HTTP_RANGE实现. HTTP断点续传原理: Http头 Range.Content-Range()HTTP头中一般断点下载时 ...