React Native Android Navigator的使用

前端之家收集整理的这篇文章主要介绍了React Native Android Navigator的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

React Native Android Navigator的使用

一. 首先在 index.Android.js 中

  1. render: function() {
  2. return (
  3.  
  4. <Navigator
  5.  
  6. initialRoute={{id: 'NewsList',name: 'Index'}}// 初始化 route 中的数据
  7. renderScene={this.renderScene.bind(this)}
  8. // 配置路由方法 renderScene
  9. //可选的函数,用来配置场景动画和手势。会带有一个路由参数调用,然后它应当返回一个场景配置对象
  10. configureScene={(route) => {
  11.  
  12. if (route.sceneConfig) {
  13. return route.sceneConfig;
  14. }
  15. return Navigator.SceneConfigs.FloatFromRight;
  16. }} />
  17.  
  18. );
  19. }

在 renderScene 方法中 配置路由

  1. renderScene(route,navigator) {
  2. var routeId = route.id;
  3. if (routeId === 'NewsList') {
  4.  
  5. return (
  6. // 将 navigator
  7. <NewsList name 传递给下个页面
  8. navigator={navigator} name={route.name} />
  9. );
  10. }else if(routeId === 'NewsLists'){
  11. return(
  12. <NewsList2
  13. navigator={navigator} />
  14. );
  15. }//未配置路由
  16. return this.noRoute(route,navigator);
  17. },

3 未配置路由的方法 显示一个提示页面,

  1. 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> ); },
  1. 在 newsList.js 中
  1. // 返回到新的页面
  2. this.props.navigator.pop();
  3. // 跳转到新的页面
  4. this.props.navigator.push({
  5. id: 'PersonPage',name: '我的主页',});

更多参考 http://react-native.cn/docs/navigator.html#content

例子下载

感谢 文同学 帮助解决数据传递
感谢 天地之灵同学 纠正错误

添加 NavigationBar 好像是因为版本的问题 title 是没办法居中 版本0.16.00


在render 中

  1. <Navigator
  2. renderScene={this.renderScene.bind(this)}
  3. navigationBar={
  4. <Navigator.NavigationBar style={{backgroundColor: '#246dd5',alignItems: 'center'}}
  5. routeMapper={NavigationBarRouteMapper} />
  6. } />

最外面 定义 NavigationBarRouteMapper

  1. var NavigationBarRouteMapper = { LeftButton(route,navigator,index,navState) { return null; },RightButton(route,Title(route,navState) { return ( <View style={{ flex: 1,justifyContent:'center',alignItems:'center',}}> <Text style={{color: 'white',backgroundColor: '#ffffff',}}> 登录 </Text> </View> ); } };

猜你在找的React相关文章