0

我有一个根 StackNavigator,它还有其他两个导航器 1 堆栈导航器(登录、注册) 2 选项卡导航器(主页、配置文件、设置)

那么当用户登录成功时,如何从 rootNavigator 导航到 tabNavigator?

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 的图像

4

2 回答 2

1

您可以通过以下方式从您的身份验证堆栈导航到您的 tabNavigator:

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

建议 我建议您用 SwitchNavigator 替换您的主 StackNavigator ...因为在用户成功登录后,您将不需要他们再次访问您的身份验证流程。

于 2019-03-28T12:27:49.167 回答
1

通过使用 Switch Navigator,您可以实现此目的。

createSwitchNavigator从进口react-navigation

例如:

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

之后添加切换导航器。

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

const App = createAppContainer(switchNavigator);

export default App;

当你想换家时,使用这个

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

它将导航切换到 TabBar 导航。

于 2019-03-28T12:28:15.600 回答