【问题标题】:react native - how to use stackNavigator and DrawerNavigator togetherreact native - 如何一起使用stackNavigator和DrawerNavigator
【发布时间】:2018-09-12 08:15:40
【问题描述】:

我正在尝试将 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 屏幕。 有没有办法让这两者一起工作?

另外,stackNavigator 和 createStack Navigator 有什么区别?当我运行这些时,我看不出有什么不同。

【问题讨论】:

    标签: reactjs react-native navigation-drawer


    【解决方案1】:

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

    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
    })
    

    现在,抽屉导航中的“主”屏幕可以使用堆栈导航。您也可以对其他屏幕执行此操作。

    【讨论】:

    • 哇,效果很好,谢谢!顺便说一句,您知道createStackNavigator 和StackNavigaor 之间有什么区别吗?
    • 我猜 StackNavigaor 是类,createStackNavigator 是用于创建新 StackNavigator 的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多