Сброс стека навигации стека из стека - PullRequest
0 голосов
/ 03 октября 2018

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

Мой навигатор выглядит так

export const Tabs = DrawerNavigator(
  {
    AuthLoading: AuthLoading,
    Auth: UnAuthenticatedTabs,
    App: AuthenticatedTabs
  },
  {
    contentComponent: SideMenu,
    initialRouteName: 'AuthLoading',
  }
);

const UnAuthenticatedTabs = SwitchNavigator({
  LogIn: { screen: SignIn },
  Registration: { screen: Registration },
  ForgotPassword: { screen: ForgotPassword }
})

const AuthenticatedTabs = StackNavigator({
  CustomerFeed: { screen: CustomerFeed,
    navigationOptions: ({ navigation }) => ({
      title: 'Customer Feed',
    })
   },
  Customer: { screen: Customer,
    navigationOptions: ({ navigation }) => ({
      title: 'Customer'
    })
  },
})

1 Ответ

0 голосов
/ 03 октября 2018

В итоге у меня сработал сброс стека, когда пользователь входит в систему и направляется в stackNavigator.Не при попытке сбросить stackNavigator, когда пользователь выходит из системы и направляется на switchNavigator.

const resetAction = NavigationActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'CustomerFeed' })],
});
this.props.navigation.dispatch(resetAction);
...