使用react-native做一个简单的应用-05 navigator的使用
2016-02-02 20:46
791 查看
今天生病了,难受。。。
Navigator顾名思义就是导航器的意思。
在Android和iOS中,导航器的样式是不一样的 ,有一个比较好的网址可以提供大家学习(网址),由于样式的不统一,于是我决定自己做一个样式,就不再使用原生的样式了。
不要看着代码很长,其实需要理解的就是一点点
首先介绍一下下面的代码,其中initialRoute,表示首先去加载的是哪一个界面(当然是欢迎界面了),由于iOS有默认的欢迎界面我们就不需要欢迎界面了,因此在这里判断一下是在哪个平台运行的。renderScene就是你需要显示的界面了,在这里我用id去区分每一个界面。configureScene:这个是页面之间跳转时候的动画。可以选择自己喜欢的跳转风格。
Navigator顾名思义就是导航器的意思。
在Android和iOS中,导航器的样式是不一样的 ,有一个比较好的网址可以提供大家学习(网址),由于样式的不统一,于是我决定自己做一个样式,就不再使用原生的样式了。
import React from 'react-native' import WelcomeScreen from './screens/WelcomeScreen' import MainRoute from './screens/MainRoute' import RegisterScreen from './screens/UserLRScreen/RegisterScreen' import LoginScreen from './screens/UserLRScreen/LoginScreen' import SearchScreen from './screens/SearchScreen' import CommodityScreen from './screens/CommodityScreen' import GraphicWebView from './screens/GraphicWebView' import BuyWebView from './screens/BuyWebView' import CategoryScreen from './screens/CategoryScreen' var { Text, View, Navigator, TouchableOpacity, PropTypes, Platform } = React class Route extends React.Component { static propTypes = { navigator: PropTypes.object, commodity: PropTypes.string }; render () { return ( <Navigator initialRoute={{id: Platform.OS === 'ios' ? 'MainRoute' : 'WelcomeScreen', name: 'Index'}} renderScene={ this.renderScene.bind(this) } configureScene={(route) => { return Navigator.SceneConfigs.FloatFromRight }} /> ) } renderScene (route, navigator) { var routeId = route.id if (routeId === 'WelcomeScreen') { return ( <WelcomeScreen navigator={navigator} /> ) } if (routeId === 'MainRoute') { return ( <MainRoute navigator={navigator}/> ) } if (routeId === 'RegisterScreen') { return ( <RegisterScreen navigator={navigator} /> ) } if (routeId === 'LoginScreen') { return ( <LoginScreen navigator={navigator} /> ) } if (routeId === 'SearchScreen') { return ( <SearchScreen navigator={navigator} /> ) } if (routeId === 'CommodityScreen') { return ( <CommodityScreen route={route} navigator={navigator} {...route.passProp}/> ) } if (routeId === 'GraphicWebView') { return ( <GraphicWebView route={route} navigator={navigator} {...route.passProp}/> ) } if (routeId === 'BuyWebView') { return ( <BuyWebView route={route} navigator={navigator} {...route.passProp}/> ) } if (routeId === 'CategoryScreen') { return ( <CategoryScreen route={route} navigator={navigator} {...route.passProp}/> ) } return this.noRoute(navigator) } noRoute (navigator) { return ( <View style={{flex: 1, alignItems: 'stretch', justifyContent: 'center'}}> <TouchableOpacity style={{flex: 1, alignItems: 'center', justifyContent: 'center'}} onPress={() => navigator.pop()}> <Text style={{color: 'red', fontWeight: 'bold'}}>请在 index.js 的 renderScene 中配置这个页面的路由</Text> </TouchableOpacity> </View> ) } } module.exports = Route
不要看着代码很长,其实需要理解的就是一点点
首先介绍一下下面的代码,其中initialRoute,表示首先去加载的是哪一个界面(当然是欢迎界面了),由于iOS有默认的欢迎界面我们就不需要欢迎界面了,因此在这里判断一下是在哪个平台运行的。renderScene就是你需要显示的界面了,在这里我用id去区分每一个界面。configureScene:这个是页面之间跳转时候的动画。可以选择自己喜欢的跳转风格。
<Navigator initialRoute={{id: Platform.OS === 'ios' ? 'MainRoute' : 'WelcomeScreen', name: 'Index'}} renderScene={ this.renderScene.bind(this) } configureScene={(route) => { return Navigator.SceneConfigs.FloatFromRight }} />
相关文章推荐
- React项目搭建基于Karma的CI环境
- Facebook的Web开发三板斧:React.js、Relay和GraphQL
- react-native 之布局篇
- React Native-8.React Native TextInput组件详解
- ReactiveCocoa学习总结
- reactor
- 【React js】 笔记
- 解决【react-native init awesomeproject没反应】
- 【React Native开发】React Native控件之ViewPagerAndroid讲解以及美团首页顶部效果实例(17)
- react native 的js 文件从哪里获取
- react 对循环warning提示增加key的研究
- react native与现有的应用程序集成
- 搭建 React Native 开发环境
- React Native-7.React Native NavigatorIOS组件详解
- ReactNative开发中如何去掉iOS状态栏的"Loading from..."
- React 入门实例教程
- React native之IntentAndroid学习
- 【React Native开发】React Native控件之Switch开关与Picker选择器组件讲解以及使用(16)
- react native使用原生模块
- 使用react-native做一个简单的应用-04界面主框架