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

先放项目地址: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. mysql设置密码登录

    参考: https://blog.csdn.net/Light_Breeze/article/details/82070222 https://www.jianshu.com/p/d979df2791 ...

  2. 前端在本地启动服务预览html页面

    在开发移动端项目时浏览器里出来的效果往往到真机上和预想的有出入,在开发过程中知道了一个可以在本地自己启动一个服务器在手机预览的办法. 1.首先在终端安装http. npm i http-server ...

  3. odoo many2one

    在xml中使many2one字段  不可点击 不可跳转 options="{'no_open': True, 'no_create': True}"

  4. Linux产生coredump文件(core)

    1.可以使用命令 ulimit -c unlimited 来开启 core dump 功能,并且不限制 core dump 文件的大小: 如果需要限制文件的大小,将 unlimited 改成你想生成 ...

  5. HZOI2019 A. 那一天我们许下约定 dp

    题目大意:https://www.cnblogs.com/Juve/articles/11219089.html 读这道题的题目让我想起了... woc我到底在想什么?好好写题解,现在不是干那个的时候 ...

  6. 微信小程序多商品评价评星提交

    <form bindsubmit="submitComment"> <block wx:for="{{commentList}}" wx:ke ...

  7. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  8. No module named 'sklearn.impute',更新scikit-learn

    -------我错了,本篇作废,我把自己的包更新坏了,大家不要往下看了------------------最终我是把anaconda卸载重装的--------- 使用scikit-learn模块进行缺 ...

  9. Leetcode551.Student Attendance Record I学生出勤记录1

    给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生的出勤纪录中不超过一个' ...

  10. 其他pyton笔记

    #小部分老男孩pyton课程 #所有脚本第一句话都要写解释以下脚本是用什么解释器 #!/usr/bin/env python #语言设置为:简体中文 #_*_coding:utf-8_*_ ##### ...