美文网首页
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