反应导航问题:stacknavigator

时间:2018-01-13 22:45:28

标签: react-native react-navigation

我正在尝试使用这个非常好的tutorial/demo

来构建抽屉导航器

问题是虽然这段代码有效但我可以浏览stacknavigator中的所有屏幕:

const navigator = StackNavigator({
  home: { screen: Home },
  signup: { screen: SignUpStep },
  login: { screen: Login },
  selectTeachers: { screen: SelectTeachers },
  dashboard: { screen: Dashboard },
},
{
  headerMode: 'float',
  navigationOptions: {
    headerStyle: { backgroundColor: '#E73536' },
    title: 'You are not logged in',
    headerTintColor: 'white'
  }
});

export default navigator;

但是当我尝试包括,作为第一步,将登录场景合并到loginstack然后将其作为另一个const中的屏幕时,它不起作用:

const LoginStack = StackNavigator({
  home: { screen: Home },
  signup: { screen: SignUpStep },
  login: { screen: Login },
  selectTeachers: { screen: SelectTeachers },
  dashboard: { screen: Dashboard },
},
{
  headerMode: 'float',
  navigationOptions: {
    headerStyle: { backgroundColor: '#E73536' },
    title: 'You are not logged in',
    headerTintColor: 'white'
  }
});

const navigator = StackNavigator({
  loginStack: { screen: LoginStack },
  //drawerStack: { screen: DrawerNavigation }
}, {
  // Default config for all screens
  headerMode: 'none',
  title: 'Main',
  initialRouteName: 'loginStack'
});
export default navigator;

这是我得到的错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

你带来的链接散开了错误的方法。

我在那里写了一条评论,

  

将抽屉放在StackNavigation下是一个坏主意,但事实并非如此   适合任何设计指南。在iOS中,拖动打开操作是重复的   在导航中返回动作。在Android中,您找不到应用   来自谷歌使用这种方法。抽屉应该覆盖StackNavigator   来自外面。

您需要将第二个StackNavigator更改为DrawerNavigator。并参阅DrawerNavigator的'react-navigation'文档或示例。