Сбросить вложенный StackNavigator в DrawerNavigator v.5 - PullRequest
0 голосов
/ 03 марта 2020

В версии 4 я переустановил StackNavigation с помощью DrawerItems onItemPress внутри contentComponent:

const AppDrawerNavigator = createDrawerNavigator(
  {
    Stack1: {
       screen: Stack1,
       navigationOptions: { // options}
   },
   Stack2: {
      screen: Stack2,
      navigationOptions: { // options}
   },
  {
    initialRouteName: 'Stack1',
    contentOptions: {
      activeTintColor: '#346bc7',
    },
    contentComponent: props => {
      return (
        <ScrollView>
          <SafeAreaView forceInset={{ top: 'always', horizontal: 'never' }} >
            <DrawerItems {...props} onItemPress={router => {
              const navigateAction = NavigationActions.navigate({
                routeName: router.route.routeName,
                params: {},
                action: NavigationActions.navigate({ routeName: router.route.routes[0].routeName }),
              });
              props.navigation.dispatch(navigateAction);
            }}
            />
          </SafeAreaView>
        </ScrollView>
      )
    }
  },
);

В React Navigation 5 появился совершенно новый API, поэтому мой старый код сброса не работает. Как я могу сделать это в DrawerNavigator v.5?

1 Ответ

0 голосов
/ 05 марта 2020

вы используете в качестве кода кода headerContent вместо contentComponent в response-navigation-v5;

<Drawer.Navigator drawerContent={props => <DrawerCustomComponent {...props} />}>
     {{ screen objects }}
</Drawer.Navigator>

пример проекта; GitHub

...