博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
官方推荐react-navigation的使用
阅读量:4085 次
发布时间:2019-05-25

本文共 5485 字,大约阅读时间需要 18 分钟。

看了官方文档的导航器对比,发现现在主推的方案是一个单独的导航库react-navigation,据说它的使用十分简单。我就写个demo,试了一下。

http://www.bijishequ.com/detail/381477

一、主要构成

按使用形式主要分三部分:
1 StackNavigator: 类似于普通的Navigator,屏幕上方导航栏
2 TabNavigator: 相当于ios里面的TabBarController,屏幕下方的标签栏
3 DrawerNavigator: 抽屉效果,侧边滑出

二、使用

1.新建项目

react-native init ComponentDemo

2. 在应用中安装此库

npm install --save react-navigation
安装完发现是beta版本(v1.0.0-beta.7) ,竟然有坑?!一会儿我们会详细说这个坑~

3.测试TabNavigator、StackNavigator和DrawerNavigator

(1)新建HomePage.js

import React from 'react';import {    StyleSheet,    View,    Text,    Button,    Image} from 'react-native';import {    StackNavigator,    TabNavigator} from 'react-navigation';import ChatScreen from './ChatScreen';import MinePage from './MinePage';class HomePage extends React.Component{    static navigationOptions={        title: '首页',//设置标题内容        header:{            backTitle: ' ',//返回按钮标题内容(默认为上一级标题内容)        }    }    constructor(props) {        super(props);    }    render() {        const {navigate} = this.props.navigation;        return (            
Hello, Navigation!

(2)新建ChatScreen.js

import React from 'react';import {    Button,    Image,    View,    Text} from 'react-native';class ChatScreen extends React.Component {    static navigationOptions = {        title:'聊天',    };    render() {        const {params} = this.props.navigation.state;        return (        
Chat with {params.user}
); }}export default ChatScreen;

(3)新建MinePage.js

import React,{Component} from 'react';import {    Button,    Image,    View,    Text,    StyleSheet} from 'react-native';import {   DrawerNavigator} from 'react-navigation';import MyNotificationsScreen from './MyNotificationsScreen';class MinePage extends Component{    static navigationOptions = {          title:'我的',         drawerLabel: '我的',        // Note: By default the icon is only shown on iOS. Search the  showIcon option below.         drawerIcon: ({ tintColor }) => (               ),   };    render(){;        return(            
Sybil

(4)编写MyNotificationsScreen.js

import React from 'react';import {    StyleSheet,    View,    Text,    Button,    Image} from 'react-native';class MyNotificationsScreen extends React.Component {    static navigationOptions = {        title:'通知',        drawerLabel: '通知',        drawerIcon: ({ tintColor }) => (                    ),    };    render() {        return (             

(5)运行
报错啦?这就是上面我们所说的坑~
什么原因呢?原来是测试版的bug,在目录中找到node_modules/react-navigation/src/views/Header.js的第12行,删除它就OK了~

Ps:遗憾的是这个错误我没有留图啊~在我即将发表这篇文章的时候,最新版已经变为(v1.0.0-beta.9)了,最新版已经将上述的bug修改了!

好了,再次运行~
上一个动态效果图:

 

想详细了解React Navigation,可以阅读这一篇英文的,希望对你们有所帮助~

转载地址:http://awrni.baihongyu.com/

你可能感兴趣的文章
用STL algorithm轻松解决几道算法面试题
查看>>
ACfly之所以不怕炸机因为它觉得某个传感器数据不安全就立马不用了
查看>>
我发觉,不管是弄ROS OPENCV T265二次开发 SDK开发 caffe PX4 都是用的C++
查看>>
ROS的安装(包含文字和视频教程,我的ROS安装教程以这篇为准)
查看>>
国内有个码云,gitee
查看>>
原来我之前一直用的APM固件....现在很多东西明白了。
查看>>
realsense-ros里里程计相关代码
查看>>
似乎写个ROS功能包并不难,你会订阅话题发布话题,加点逻辑处理,就可以写一些基础的ROS功能包了。
查看>>
if __name__ == ‘__main__‘:就是Python里的main函数,脚本从这里开始执行,如果没有main函数则从上到下顺序执行。
查看>>
PX4官方用户和开发手册的首页面是会给你选择英文和中文的
查看>>
网络协议栈我是不是可以这么理解,就是把你要发送的数据自动处理成TCPIP格式的消息发出去,这种底层的转换不需要你弄了。
查看>>
除了LwIP还有uIP
查看>>
《跟工程师学嵌入式开发》这本书最后的终极项目我反而觉得有说头
查看>>
博士的申请考核制
查看>>
那些硬件的初始化函数主要是在做些上什么?
查看>>
MAVLink学习之路05_MAVLink应用编程接口分析(也有讲STM32下的收发函数)
查看>>
找到了中文版的mavlink手册
查看>>
浅谈飞控开发的仿真功能
查看>>
我觉得在室内弄无人机开发装个防撞机架还是很有必要的,TBUS就做得很好。
查看>>
serial也是见到很多次了,似乎它就是一种串行通信协议
查看>>