Реагировать на проблему с навигацией: 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;

Но когда я пытаюсь включить в качестве первого шага объединение сцен входа в стек входа, а затем использовать его как экран в другой константе, это не работает:

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;

вот ошибка, которую я получаю:

введите здесь описание изображения


person Sam Rao    schedule 13.01.2018    source источник


Ответы (1)


Ссылка, которую вы привели, распространяет неправильный подход.

Я написал там комментарий,

Помещать ящик под StackNavigation — плохая идея, и она не соответствует ни одному руководству по дизайну. В iOS действие перетаскивания для открытия дублируется с действием возврата в навигации. В Android вы не найдете ни одного приложения от Google, использующего этот подход. Ящик должен закрывать StackNavigator снаружи.

Вам нужно изменить второй StackNavigator на DrawerNavigator. И см. документы «реагировать-навигация» или пример для DrawerNavigator.

person Bright Lee    schedule 15.01.2018
comment
навигация по ящику закомментирована и, следовательно, не активна. Меня беспокоит то, что const navigator = StackNavigator({loginStack: {screen: LoginStack}, не работает. Но так и должно быть. Я просто ссылаюсь на один stacknavigator внутри другого. - person Sam Rao; 17.01.2018
comment
@SamRao Можете ли вы нарисовать несколько хирачек, которые вы хотите сохранить в архиве? Тогда, возможно, я смогу дать совет. - person Bright Lee; 17.01.2018
comment
@SamRao Кстати, я сделал для вас рабочий образец. snack.expo.io/rJIKh61Sf - person Bright Lee; 19.01.2018