React native 如何嵌套createDrawerNavigator createStackNavigator createBottomTabNavigator

React native 如何嵌套createDrawerNavigator createStackNavigator createBottomTabNavigator,react-native,react-navigation,React Native,React Navigation,我已经尝试了很多方法,但我还没有找到一个好的解决方案来nest createDrawerNavigator createBottomTabNavigator createStackNavigator import HomeScreen from './src/component/Home/homescreen'; ..... const AuthStack = createStackNavigator({ Home : { screen: HomeActivity,

我已经尝试了很多方法,但我还没有找到一个好的解决方案来nest createDrawerNavigator createBottomTabNavigator createStackNavigator

import HomeScreen from './src/component/Home/homescreen';
.....

const AuthStack = createStackNavigator({
Home : {
       screen: HomeActivity,
          navigationOptions: {
             header:null        
          }
       },
Profile:  LoginScreen,
Signup: SignupScreen,
});

const AppStack = createStackNavigator(
    {
        HomeScene: HomeScreen,
        ChooseWallet: ChooseWalletScreen,
        ChooseFiatSrn:ChooseFiatScreen,
    });


export default createSwitchNavigator(
{
  App:AppStack,
  Auth:AuthStack,
},
{
  initialRouteName:'Auth',
});
现在
  • 抽屉(createDrawerNavigator)
    • 主堆栈(createStackNavigator)
    • TabNav(CreateBoottomTabNavigator)
      • 主屏幕
      • 结构屏幕
      • 分类屏幕
      • 投影屏幕
    • 详细信息屏幕
    • 登录屏幕
    • 注册表屏幕
    • 关于屏幕
    • 收集屏
    • 登录屏幕
    • 关于屏幕
    • 收集屏
当我在MainStack中打开抽屉时,然后单击AboutMe open AboutMeScreen,此时在AboutMeScreen中,但当我打开抽屉时,焦点是MainStack -为什么焦点项目是主堆栈?我想这个时候我应该对自己有兴趣


以前的
  • 抽屉(createDrawerNavigator)
    • 主堆栈(createStackNavigator)
    • TabNav(CreateBoottomTabNavigator)
      • 主屏幕
      • 结构屏幕
      • 分类屏幕
      • 投影屏幕
    • 详细信息屏幕
    • LoginStack(createStackNavigator)
    • 登录屏幕
    • 注册表屏幕
    • 关于堆栈(createStackNavigator)
    • 关于屏幕
    • CollectStack(createStackNavigator)
    • 收集屏
这样,当我在MainStack中打开抽屉时,单击AboutMe open AboutMeScreen -关于斯塔克,你没有头颅左后

当我在MainStack中打开抽屉,然后打开LoginScreen,然后打开RegisterScreen -我不知道如何直接导航到MainStack


我不知道哪种方法是对的。 我的英语不是很好,先学英语,谢谢

你的环境 |软件版本 | ---------------- | ------- |反应导航| 2.2.0 |react native | 0.55.4这些步骤会有所帮助

有人给我举了个例子

步骤1:App.js文件我有以下代码(createStackNavigator)

setp 2:homescreen.js我有以下代码(createBottomTabNavigator、createDrawerNavigator)

从'react native vector icons/Ionicons'导入离子图标;
....
const Tab=createBottomTabNavigator({
钱包:WalletScreen,
请求:请求屏幕,
发送:发送屏幕,
Exchange:ExchangeScreen,
},
{   
导航选项:({navigation})=>({
tabBarIcon:({focused,tintColor})=>{
const{routeName}=navigation.state;
让我来;
如果(routeName==='Wallet'){
iconName='ios主页';
}else if(routeName==='Request'){
iconName=`ios选项`;
}else if(routeName==='Send'){
iconName=`ios发送`;
}else if(routeName=='Exchange'){
iconName=`ios交换`;
}
//您可以返回任何您喜欢的组件!我们通常使用
//来自本机向量图标的图标组件
返回;
},
}),
选项卡选项:{
activeTintColor:“钢蓝”,
颜色:“灰色”,
},
});
const pawernavigation=createpawernavigator({
主页:{
屏幕:选项卡,
//添加更多屏幕
}
});
导出默认付款人激活;

如果有人面临任何问题,那么让我来帮你

你找到解决办法了吗?目前在版本2.17上,并且存在相同的问题。
import Ionicons from 'react-native-vector-icons/Ionicons';
....

const Tab = createBottomTabNavigator({
      Wallet: WalletScreen,
      Request: RequestScreen,
      Send: SendScreen,
      Exchange: ExchangeScreen,
},
{   
    navigationOptions: ({ navigation }) => ({
    tabBarIcon: ({ focused, tintColor }) => {
    const { routeName } = navigation.state;
    let iconName;
    if (routeName === 'Wallet') {
      iconName = `ios-home`;
    } else if (routeName === 'Request') {
      iconName = `ios-options`;
    }else if (routeName === 'Send') {
        iconName = `ios-send`;
    }else if (routeName === 'Exchange') {
        iconName = `ios-swap`;
    }
    // You can return any component that you like here! We usually use an
    // icon component from react-native-vector-icons
    return <Ionicons name={iconName} size={25} color={tintColor} />;
  },
}),
tabBarOptions: {
    activeTintColor: 'steelblue',
    inactiveTintColor: 'gray',  
  },
});

 const DrawerNavigation = createDrawerNavigator({
  Home:{
        screen: Tab,
        //Add can more screen
       }
  });
  export default DrawerNavigation;