美文网首页
createBottomTabNavigator和createS

createBottomTabNavigator和createS

作者: 6灰太狼9 | 来源:发表于2019-11-19 10:18 被阅读0次

    createBottomTabNavigator直接代码

    import React,{Component} from 'react';
    import {View,Image} from 'react-native';
    import {createAppContainer,} from 'react-navigation';
    import {createBottomTabNavigator} from 'react-navigation-tabs';
    
    
    class HomeScreen extends React.Component {
        render() {
          return (
            <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
              <Text>Home!</Text>
            </View>
          );
        }
      }
      
      class SettingsScreen extends React.Component {
        render() {
          return (
            <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
              <Text>Settings!</Text>
            </View>
          );
        }
      }
      
      const TabNavigator = createBottomTabNavigator({
        Home: {
            screen:HomeScreen,
            navigationOptions:{
                tabBarLabel:'首页',
                tabBarIcon:({focused})=>(
                    <Image style={{width:22,height:22}} source={focused?require('./code/Tabbar/Images/tabbar_home_selecte.png'):require('./code/Tabbar/Images/tabbar_home.png')}></Image>
                ),
            }
        },
        Settings: {
            screen:SettingsScreen,
            navigationOptions:{
                tabBarLabel:'我的',
                tabBarIcon:({focused})=>(
                    <Image style={{width:22,height:22}} source={focused?require('./code/Tabbar/Images/tabbar_mine_selecte.png'):require('./code/Tabbar/Images/tabbar_mine.png')}></Image>
                ),
            }
        },
      },{
          initialRouteName:'Settings', //默认选中的
        //   order:['Settings','Home'] //routeNames数组,用于定义选项卡的顺序。
          tabBarOptions:{
              activeTintColor:'#F77B4A',
              inactiveTintColor:'#999',
              labelStyle:{
                  fontSize:10,
              }
          }
    
          
      });
      
    const appContainer  = createAppContainer(TabNavigator);//这一步不可避免
    
    export default appContainer;
    

    集成过程中的遇到的问题

    1.createBottomTabNavigator在类库react-navigation-tabs中而不再react-nabigation中。所有除了导入react-navigation库,还得导入react-navigation-tabs库。
    2.react-navigation-tabs库yarn add进工程后,有可能报错如下图,发现react-navigation-tabs库中有文件依赖库react-native-reanimated。


    Simulator Screen Shot - iPhone 8 - 2019-11-19 at 10.12.23.png

    3.添加react-native-reanimated库后还可能报错,这个使用需要cd进入ios工程更目录,执行命令pod install

    createStackNavigator 直接代码

    import React,{Component} from 'react';
    import {View, Text,TouchableHighlight,Image} from 'react-native';
    import {createAppContainer,createNavigationContainer,createNavigator} from 'react-navigation';
    import {createStackNavigator} from 'react-navigation-stack';
    import Login from './Components/Login.js';
    import Register from './Components/Register.js';
    
    
    const loginNav = createStackNavigator({
        Login:{
            screen:Login,
            navigationOptions:{
                title:'登录'
            }
        },
        Register:{
            screen:Register,
            navigationOptions:(props)=>({
                title:'注册',
                headerLeft:(
                    renderNavLeftButton(props.navigation)
                ),
            })
        }
    });
    const renderNavLeftButton=(navigation)=>{
        console.warn(JSON.stringify(navigation));
        return(
          <TouchableHighlight
            style={{ alignItems: "center", justifyContent: 'center', height: 40, width: 40 }}
            onPress={()=>{backAction(navigation)}}
            underlayColor="#fff">
            <Image style={{ width: 12, height: 19, }} source={require('../Common/images/back_arrow.png')}></Image>
          </TouchableHighlight>
        );
    }
    const backAction=(navigation)=>{
        console.warn('left+'+navigation.state.routeName);
        navigation.pop();
    }
    const appContainer =  createAppContainer(loginNav);
    export default appContainer;
    

    集成过程中的遇到的问题

    1.createStackNavigator在类库react-navigation-stack中而不再react-nabigation中。所有除了导入react-navigation库,还得导入react-navigation-stack库。

    相关文章

      网友评论

          本文标题:createBottomTabNavigator和createS

          本文链接:https://www.haomeiwen.com/subject/alqwictx.html