Двух стековый навигатор в реагирует на родной - PullRequest
1 голос
/ 01 апреля 2019

у меня ниже кодовая база для навигации

// drawer stack
const DrawerStack = createDrawerNavigator({
  screen1: { screen: Screen1 },
  screen2: { screen: Screen2 },
  screen3: { screen: Screen3 },
})

const DrawerNavigation = createStackNavigator({
  DrawerStack: { screen: DrawerStack }
}, {
  headerMode: 'float',
  navigationOptions: ({navigation}) => ({
    headerStyle: {backgroundColor: 'green'},
    title: 'Logged In to your app!',
    headerLeft: <Text onPress={() => navigation.navigate('DrawerOpen')}>Menu</Text>
  })
})

// login stack
const LoginStack = createStackNavigator({
  signupScreen: { screen: SplashScreen },
  loginScreen: { screen: Login },
//   forgottenPasswordScreen: { screen: ForgottenPasswordScreen, navigationOptions: { title: 'Forgot Password' } }
}, {
  headerMode: 'float',
  navigationOptions: {
    headerStyle: {backgroundColor: 'red'},
    title: 'You are not logged in'
  }
})

// Manifest of possible screens
const Nav = createStackNavigator({
  loginStack: { screen: LoginStack },
  drawerStack: { screen: DrawerNavigation }
}, {
  // Default config for all screens
  headerMode: 'none',
  title: 'Main',
  initialRouteName: 'loginStack'
})

Один предназначен для без входа в систему, а другой - после входа в систему

Изначально он будет корректно заходить на страницу входа / регистрации

Тогда после входа в систему я просто делаю это

this.props.navigation.navigate ( "SCREEN3");

Но ящик не отображается.

Как отобразить ящик после входа в систему.

Спасибо

1 Ответ

0 голосов
/ 01 апреля 2019

Вы пробовали switchNavigator?

import {
  createAppContainer,
  createStackNavigator,
  createDrawerNavigator,
  createSwitchNavigator
} from "react-navigation";

.
.
.
const switchNavigator = createSwitchNavigator(
  {
    LoginStack: LoginStack,
    DrawerStack: DrawerNavigation
  },
  { headerMode: "none", initialRouteName: "LoginStack" }
);

const App = createAppContainer(switchNavigator);

export default App;

Если вы хотите переключиться на следующий стек, используйте следующее,

this.props.navigation.navigate("DrawerStack");

И если вы хотите открыть ящик, используйте следующую кнопку при нажатии кнопки

import { DrawerActions } from "react-navigation";
...
...
...
this.props.navigation.dispatch(DrawerActions.openDrawer());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...