Как убедиться, что навигация по ящикам полностью удалена, когда я перехожу к другому BottomTabNavigator? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть BottomTabNavigator, который содержит еще один BottomTabNavigator и два DrawerNavigator.

Один из DrawerNavigators представляет состояние аутентификации.Я только что реализовал кнопку выхода из системы в этом окне навигации.Кнопка очищает состояние избыточности и перемещается к BottomTabNavigator, более конкретно, к маршруту входа в систему навигатора приветствия.

Однако, как только в окне приветствия Navigato после выхода из системы, аутентифицированный ящик отображается при попытке навигации.на другой маршрут BottomTabNavigator.

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

Есть ли способ убедиться, что Authenticated Drawer Navigator не отображается при выходе из системы?

Вот мой главный навигатор:

import React, { Component } from 'react';
import {
  AppRegistry,
  View,
  SafeAreaView,
  Button,
  AsyncStorage,
  TouchableOpacity,
  Text,
} from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { PersistGate } from 'redux-persist/integration/react';
import {
  createBottomTabNavigator,
  createSwitchNavigator,
  createDrawerNavigator,
  createStackNavigator,
  DrawerItems,

 } from 'react-navigation';
import { Provider } from 'react-redux';
import Welcome from './screens/Welcome';
import Register from './screens/RegisterScreen';
import Login from './screens/LoginScreen';
import Home from './screens/Home';
import Events from './screens/Events';
import Board from './screens/Board';
import HomePage from './screens/HomePage';
import SettingsScreen from './screens/BusinessSettings';
import BusinessEvents from './screens/BusinessEvents';
import EventListings from './screens/EventListings';
import BusinessListings from './screens/BusinessListings';
import Business from './screens/Business';
import BusinessForm from './screens/BusinessForm';
import EventForm from './screens/EventForm';
import Logout from './screens/Logout';
import { persistor, store } from './store';


const MainNavigator = createBottomTabNavigator(
  {
    Welcome: createBottomTabNavigator({
      Welcome: Welcome,
      Login: Login,
      Register: Register,
      Board: Board,
    }),

    Home: createDrawerNavigator({
      Home: {
        screen: Home,
      },
      Events: {
        screen: Events,
      },
      Business: {
        screen: Business
      }
    }),
    HomePage: createDrawerNavigator({
      HomePage: {
        screen: HomePage,
      },
      Settings: {
        screen: SettingsScreen,
      },
      EventListings: {
        screen: EventListings
      },

      EventForm: {
        screen: EventForm
      },

      BusinessEvents: {
        screen: BusinessEvents
      },
      BusinessListings: {
        screen: BusinessListings
      },
      NewBusiness: {
        screen: BusinessForm
      },
      Business: {
        screen: Business
      }
    }, {

      contentComponent: (props) => (
        <View style={{ flex:1 }}>
         <SafeAreaView forceInset={{ top: 'always', horizontal: 'never' }}>
           <DrawerItems {...props} />
           <TouchableOpacity style={{  flexDirection: 'row', marginLeft: '8%', paddingTop: '2%' }} onPress={ async () => {
             await AsyncStorage.clear();
             await persistor.purge();
             props.navigation.navigate("Welcome");
           }}>
               <Ionicons name="ios-log-out-outline" size={24} color="#053541" /><Text style={{ marginLeft: '14%', fontWeight: 'bold', color: 'black' }}>Log Out</Text>
           </TouchableOpacity>
         </SafeAreaView>
   </View>
     ),
     drawerOpenRoute: 'DrawerOpen',
     drawerCloseRoute: 'DrawerClose',
     drawerToggleRoute: 'DrawerToggle'

    })
  },
  {
   headerMode: 'none',
   navigationOptions: {
        header: null,
        tabBarVisible: false,
        headerVisible: false,
        headerMode: 'none',
  },
    tabBarVisible: false,
    swipeEnabled: false,
    animationEnabled: false,
    lazy: true,
    transitionConfig: () => ({
      transitionSpec: {
        duration: 0,
      },
    }),

    /* Other configuration remains unchanged */
  }
);

export default class App extends Component {
  render() {
    return (
      <Provider store={store}>
        <PersistGate loading={null} persistor={persistor}>
          <MainNavigator />
        </PersistGate>
      </Provider>
    );
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...