这个项目还不错,还比较全

先放项目地址: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的更多相关文章

  1. 基于RN开发的一款视频配音APP(开源)

    在如今React.ng.vue三分天下的格局下,不得不让自己加快学习的脚步.虽然经常会陷入各种迷茫,学得越多会发现不会的东西也被无限放大,不过能用新的技术作出一些小项目小Demo还是会给自己些许自信与 ...

  2. WebView JS与RN进行通讯

    RN0.37终于官方增加了WebView与React Native的通讯,之前一真使用的是第三方控件React-Native-WebView-Bridge,但不是知道怎么回事这个第三方控件喊了很长时间 ...

  3. ReactNative新手学习之路02第一个RN项目

    开始第一个RN项目(iOS版)我的电影列表0.1版,后面做列表版 打开上一节项目 index.ios.js,android打开index.android.js.我这里使用的是Atom编辑器,你也可以使 ...

  4. RN中的onChangeText

    在RN学习中,按照一本书中案例书写TextInput框, 书中给了两种写法 写法1: <TextInput style={styles.pswInputStyle} placeholder='请 ...

  5. 去重 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN

    关键字  ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN 按照分组字段进行排序并标编号 ROW_NUMBER() OVER(PARTITIO ...

  6. React Native填坑之旅--重新认识RN

    如同黑夜里的一道光一样,就这么知道了F8. F8是每年一次Facebook每年一次的开发者大会.每次大会都会release相应的APP,iOS.Android都有.之前都是用Native开发的,但是2 ...

  7. RN项目搭建

    一.安装JDK 由安装包引起,你可以尝试一下新包 注意安装路径要不同 或者重新安装Windows Installer 运行CMD 1.输入 sfc /SCANNOW 回车 2.完成后输入 msiexe ...

  8. RN学习1——前奏,app插件化和热更新的探索

    react_native_banner-min.png React Native(以下简称RN)有大量前端开发者的追捧.前端开发是一个活跃的社区,一直尝试着一统前后端,做一个全栈开发,RN就是他们在客 ...

  9. 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 ...

随机推荐

  1. 联想 Z470个人安装黑苹果参考

    笔记本是联想 Z470,cpu i3-2350M 傻瓜图文式]Win系统下制作U盘CLOVER引导 EDIT部分 进去黑屏 U盘引导盘

  2. html的常用标签详解1

    1.<!DOCTYPE html> 文档声明,不算是标签,但是它可是不能少.这玩意是干什么用的呢? 它是向浏览器自报家门的,即告诉浏览器的解析器应该以什么样的文档类型定义(DTD)来解析它 ...

  3. vue.js_12_vue的watch和computed

    1.watch用来监测指定Vue实例上的数据变动. watch主要用于监控vue实例的变化,它监控的变量当然必须在data里面声明才可以,它可以监控一个变量,也可以是一个对象. 1.>使用wat ...

  4. php缓存技术有哪些(总结)

    php缓存技术有哪些(总结) 一.总结 一句话总结: 静态页面:全页面静态化缓存,页面部分缓存(将页面中不常变动的部分进行静态化缓存), 数据缓存:比如我的每轮的题目数据,商店,寻宝数据等 数据库:查 ...

  5. 为什么@RestController返回的Date类型是Long型

    最近项目中发现一个好玩的事情:本地调试时,返回的date是日期格式yyyy-MM-dd HH:mm:ss,但发布到服务器后就变为Long型的时间戳了 最后查到的原因很简单,因为发布服务器启动时的脚本加 ...

  6. DSP日志打印 LOG_printf

    LOG_printf 依托BIOS环境,需要引用下列头文件: #include <std.h> #include <log.h>     并且,要在.tcf环境中添加一个LOG ...

  7. Linux报错:“/bin/bash^M: 坏的解释器

    原因是linux下的文件,在windows下面编辑过.在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n 解决方法,将文件里面的内容做替换即可 sed -i 's/\r$//' b ...

  8. mysql日常sql

    重置表 truncate table david_account; 触发器 /* 商户资料更新时更新终端 */ DELIMITER | CREATE TRIGGER bankChange AFTER ...

  9. pc端样式重置以及常用样式规范class

    //reset html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a ...

  10. 玩转 Django2.0 笔记1

    模板静态  路由 urls.py urlpatterns = [ path("<year>/<int:month>/<slug:day>",my ...