react native - 如何一起使用 stack Navigator 和 Drawer Navigator

react native - how to use stackNavigator and DrawerNavigator together

我正在尝试同时使用 React Native DrawerNavigator 和 StackNavigator,但由于某些原因我无法使其工作。

下面是我的代码:

import {DrawerNavigator,StackNavigator, } from 'react-navigation'

class App extends Component {
  render(){
    return(
      <View style={{flex:1,backgroundColor:'transparent'}}>
        <AppStackNavigator/>
        <AppDrawerNavigator/>
       </View>
    )
  }
}

const AppDrawerNavigator = DrawerNavigator({
  Home:HomeScreen,
  Price:PriceScreen,
  Info:InfoScreen,
  Login:LoginScreen
})

const  AppStackNavigator = StackNavigator({
  Home:HomeScreen,
  Price:PriceScreen,
  Info:InfoScreen,
  Login:LoginScreen
})

export default App

当我 运行 这段代码时,我的应用程序屏幕被分成两半,上半部分显示 stackNavigator 屏幕,下半部分显示 DrawerNavigator 屏幕。 有没有办法让这两者一起工作?

还有,stackNavigatorcreateStack Navigator有什么区别?当我 运行 这些时,我没有看到差异。

您需要嵌套导航器才能获得您想要的结果。 例如,如果您想在抽屉式导航中的其中一个屏幕内使用堆栈导航,您可以这样做:

import {DrawerNavigator, StackNavigator} from 'react-navigation'
class App extends Component {
    render() {
        return (
            <View style={{ flex: 1, backgroundColor: 'transparent' }}>
                <AppDrawerNavigator />
            </View>
        )
    }
}

const AppStackNavigator = StackNavigator({
    Home: HomeScreen,
    Price: PriceScreen,
    Info: InfoScreen,
    Login: LoginScreen
})

const AppDrawerNavigator = DrawerNavigator({
    Home: AppStackNavigator,
    // Price: PriceScreen,
    // Info: InfoScreen,
    // Login: LoginScreen
})

 export default App

重要的部分是

const AppDrawerNavigator = DrawerNavigator({
    Home: AppStackNavigator, <--- This
    // Price: PriceScreen,
    // Info: InfoScreen,
    // Login: LoginScreen
})

现在抽屉导航中的 "Home" 屏幕可以使用堆栈导航。您也可以为其他屏幕执行此操作。