Как отключить навигацию по ящику только для одного экрана навигатора? - PullRequest
4 голосов
/ 14 марта 2019

У меня есть пользовательский навигационный ящик и на определенном экране я не хочу, чтобы он был доступен.

Это мой короткий код.

Этот навигатор также включен навигатором коммутатора. Я копался в git-hub и других форумах, и в настоящее время ничего не работает. Я что-то пропустил? Есть кто-то, кто заставил его работать?

const UserNavigation = createDrawerNavigator({
    ProductListScreen: {screen: ProductListScreen},
    ProductHistoryScreen: {
      screen: ProductHistoryScreen,
      navigationOptions: {
        drawerLockMode: 'locked-closed'
      }
    }
}, {
    initialRouteName: 'ProductListScreen',
    contentComponent: CustomDrawerContentComponent,
})

export default createAppContainer(UserNavigation)

Существует также рабочий код на expo , но я пытаюсь и приводит к отображению двойных навигаторов, а также на экране, где я не хочу показывать ящик, который появляется. Это моя попытка сослаться на код выставки

const UserStackNavigation = createStackNavigator({
  ProductListScreen: {screen: ProductListScreen},
  ProductHistoryScreen: {
    screen: ProductHistoryScreen
  }
})

const UserNavigation = createDrawerNavigator({
  UserStackNavigation: UserStackNavigation
}, {
  initialRouteName: 'UserStackNavigation',
  contentComponent: CustomDrawerContentComponent,
})

UserStackNavigation.navigationOptions = ({ navigation }) => ({
  drawerLockMode: navigation.state.index === 0 ? 'unlocked' : 'locked-closed',
});
export default createAppContainer(UserNavigation)

1 Ответ

0 голосов
/ 16 марта 2019

Проблема заключалась в том, что я использовал Ignite для генерации шаблона проекта, а версия реакции-навигации была исправлена ​​на 3.0.0. И после просмотра последнего комментария на этой ссылке я понял, что это не проблема с моим синтаксисом.

Поэтому я удалил свою папку pack.lock.json, yarn.lock, node_modules, в package.json я установил версию ^ 3.0.0, чтобы получить последнюю версию.

После всего этого я установил пряжу для получения полного обновления пакета. С этим изменением мой ящик реакции-навигации перешел с 1.0.1 на 1.3.0, и это устранило проблему.

Также внесены некоторые изменения в мою навигацию, которая теперь выглядит следующим образом:

export default class UserNavigation extends React.Component{
  render(){
    return <Nav />
  }
}

const Nav = createAppContainer(
  createDrawerNavigator(
    {
      ProductListScreen: {screen: ProductListScreen},
      ProductHistoryScreen: {
        screen: ProductHistoryScreen,
          navigationOptions:{
            drawerLockMode: 'locked-closed'
          }
      }
    }, {
      initialRouteName: 'ProductListScreen',
      contentComponent: CustomDrawerContentComponent,
    }
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...