在用户通过身份验证后,如何导航用户登录屏幕?

问题描述 投票:0回答:2

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

所以当用户登录成功时,如何从root Navigator导航到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

here is the image of App.js and RootRouter

react-native react-redux react-navigation react-navigation-stack
2个回答
1
投票

您可以通过以下方式从auth堆栈导航到tabNavigator:

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

建议我认为你用SwitchNavigator替换你的主StackNavigator ...因为在用户连续登录之后,你不需要他们再次访问你的auth流。


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");

它会将导航切换到标签栏导航。

© www.soinside.com 2019 - 2024. All rights reserved.