Как я могу направить пользователя на экран входа в систему, когда аутентификация пользователей? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть корневой StackNavigator, в котором есть два других навигатора: 1 стековый навигатор (вход, регистрация) 2 вкладочный навигатор (дом, профиль, настройки)

, поэтому при успешном входе пользователя в систему я могу перейти на tabNavigator из rootNavigator?

import React from 'react';
import { createStackNavigator, createAppContainer } from 'react-navigation'

import authNavi from './AuthRoute';  /// this is StackNavigator with login signup screen

import appNavi from './AppRoute' /// this is tabNAvigator with profile home setting screen

const RootRoute = createStackNavigator({ 

    auth: {screen: authNavi },
    app: {screen: appNavi }
})

const RootNavi = createAppContainer(RootRoute);
export default RootNavi;  /// this is rootNavigator whih is rendered in App.js

вот изображение App.js и RootRouter

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Используя Switch Navigator, вы можете добиться этого.

import createSwitchNavigator from react-navigation

Например:

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

После этого добавьте Switch Navigator.

...
const switchNavigator = createSwitchNavigator(
  {
    LoginStack: authNavi,
    AppTabs: appNavi
  },
  { headerMode: "none", initialRouteName: "LoginStack" }
);

const App = createAppContainer(switchNavigator);

export default App;

И когда вы захотите переехать в дом, используйте этот

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

. Он переключит навигацию на навигацию TabBar.

1 голос
/ 28 марта 2019

Вы можете перейти от своего стека авторизации к вашему tabNavigator следующим образом:

this.props.navigation.navigate('app');

Предложение Я рекомендую заменить основной StackNavigator на SwitchNavigator ...потому что после успешного входа пользователя вам не понадобится снова иметь доступ к вашему потоку аутентификации.

...