其实就是一个小的demo,不过代码分的挺精巧的

先放地址:https://github.com/linchengzzz/rnTest

来看看效果









确实没有什么可以说的,不过代码部分还行

先入口文件

//index.js
/** @format */ import {AppRegistry} from 'react-native';
import App from './src/App';
import {name as appName} from './src/app.json'; AppRegistry.registerComponent(appName, () => App);

看一下项目目录

在app.js中我们会引用

//src/App.js
import React from "react";
import { createAppContainer} from "react-navigation";
//定义的是
import RootStack from './navigation/RootStack'; const AppContainer = createAppContainer(RootStack); export default class App extends React.Component {
render() {
return <AppContainer />;
}
}

在appNavigator中是可渲染页面的切换入口

//src/navigation/AppNavigator.js
import {createStackNavigator} from "react-navigation";
//引入home页面
import HomeScreen from '../pages/Home';
//引入详情页
import DetailsScreen from '../pages/Details'; export default createStackNavigator({
Home: {
screen: HomeScreen,
mode: 'card'
},
Details: {
screen: DetailsScreen,
mode: 'card'
}
});

rootstack.js可以看作是根引用tab切换目录

//src/navigation/RootStack.js
import {createStackNavigator} from "react-navigation";
import AppNavigator from './AppNavigator'; export default createStackNavigator(
{
Main: {
screen: AppNavigator,
}
},
{
mode: 'card',
headerMode: 'none',
}
);

接下来看页面

//src/pages/Home.js
import React from "react";
import {Button, Text, View} from "react-native"; export default class HomeScreen extends React.Component {
render() {
return (
<View style={{flex: 1, alignItems: "center", justifyContent: "center"}}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => this.props.navigation.navigate('Details', {name: 'linchengzzz'})}
/>
</View>
);
}
}
//src/pages/Details.js
import React from "react";
import {Button, Text, View} from "react-native"; export default class DetailsScreen extends React.Component {
render() {
const { navigation } = this.props;
const name = navigation.getParam('name');
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<Text>Details Screen {name}</Text>
<Button
title="Go to Details.t.. again"
onPress={() => this.props.navigation.push('Details')}
/>
<Button
title="Go to Home"
onPress={() => this.props.navigation.navigate('Home')}
/>
<Button
title="Go back"
onPress={() => this.props.navigation.goBack()}
/>
</View>
);
}
}

哎,,,,,,就那里一点是亮点

最新文章

  1. 一步步学习 Spring Data 系列之JPA(二)
  2. 使用 Redis 实现分布式锁
  3. 软件光栅化渲染器Augustus计划
  4. Tomcat源码分析之—容器整体结构
  5. 【Alpha版本】测试文档
  6. android 短信助手demo
  7. [转]C#使用Log4Net记录日志
  8. 【转】Maven实战(三)---插件动态打包
  9. StatsD!次世代系统监控的核心
  10. Nuget 自动上传
  11. Linux多网卡多IP配置
  12. 指尖上的电商---(2)Solr全文搜索引擎的准备工作
  13. 对中级 Linux 用户有用的 20 个命令
  14. 写JS自执行函数时要注意的
  15. [LeetCode] Subarray Sum Equals K 子数组和为K
  16. IOS开发-UIDynamic(物理仿真)简单使用
  17. BZOJ_4872_[Shoi2017]分手是祝愿_概率与期望
  18. 俞敏洪:我创业24年感悟的3条CEO守则
  19. WorldWind源码剖析系列:代理助手类ProxyHelper
  20. artdialog5 bug

热门文章

  1. API 练习 第一篇
  2. python re.sub详解
  3. springboot核心技术(四)-----Docker、数据访问、自定义starter
  4. CentOS 6.5 Apache+SVN使用户可以自己修改密码
  5. 构建支持中文字体的moviepy镜像
  6. 探索SpringBoot中的SpringMVC
  7. Java程序员面试题收集(3)
  8. Leetcode405Convert a Number to Hexadecimal数字转换为十六进制数
  9. mysqldump mysql数据库导出命令
  10. jquery全部选是,全部选否。