当前位置: 首页 > 知识库问答 >
问题:

如何管理单页上的两个导航:一个是createstack navigator,另一个是drawer navigator?

宰父夕
2023-03-14

导出默认类App扩展React。组件渲染

return(
  <MyApp />
  );
 return(

  <Navigation />
  );

}

const Navigation = createStackNavigator({

欢迎:{屏幕:飞溅,导航选项:{标题:空}},登录:{屏幕:请求登录,导航选项:{标题:“登录”,标题标题标题样式:{对齐自我:“中心”,文本对齐:“中心”,宽度:“77%”},标题样式:{背景颜色:“#095473”},标题颜色:"白色"}},

忘记:{屏幕:忘记,导航选项:{标题:"忘记密码",标题标题样式:{对齐自己:"中心",文本对齐:"中心",宽度:"77%"},标题样式:{背景颜色:"#095473"},标题颜色:"白色" } } });

const MyApp = DrawerNavigator(

{主页:{屏幕:注册,导航选项:{抽屉标签:'Home',抽屉图标:()=

    />
    ),
    }
},
Profile: {
  screen: Profile_Requester,
  navigationOptions: {
    drawerLabel: 'Profile',
    drawerIcon: () => (
      <Icon
      name="user-circle"
      size={25}
      color="black"
      //style={styles.useraccounticon}

    />
    ),
    }
},

});

在上面的代码中,我使用了两个用于导航的导航CreateStack navigation。用于Myapp的抽屉导航器。但就我而言,只有我的应用程序在工作。请给一些想法如何返回正确的方式都将工作。非常感谢。

共有1个答案

申屠锦
2023-03-14

看起来您正在尝试实现身份验证流。您应该使用createSwitchNavigator并将其他导航器嵌套在其中。SwitchNavigator可以帮助你进行身份验证,因为它可以处理一些事情,比如确保你不能使用后退按钮从登录屏幕跳转到你的主应用。

其思想是,您将有一个SwitchNavigator作为具有两个流的父导航器:用户是否登录。子导航器类似于AuthMain。如果用户未登录,活动导航器将是Auth,它本身就是一个StackNavigator。如果用户已登录,则活动导航器将是一个带有堆叠的StackNavigatorDrawerNavigator

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

const App = createDrawerNavigator({ AppStack: AppStack });
const AppStack = createStackNavigator({
  Home: { screen: Reqlogin },
  Profile: { screen: Profile_Requester }
});
const Auth = createStackNavigator({
  Welcome: { screen: Splash },
  Login: { screen: Requesterlogin },
  Forgot: { screen: Forgot }
});

export default createSwitchNavigator(
  {
    AuthLoading: AuthLoadingScreen,  // You'll check whether user is logged in or not here
    App: AppStack,
    Auth: AuthStack,
  },
  {
    initialRouteName: 'AuthLoading',
  }
);

有关更多帮助,请访问本文档和本文。

 类似资料:
  • 下面是fiddle http://jsfiddle.net/sgtrx/中的代码(应该在早些时候完成,对不起) 好的,我的导航栏在Div包装器内,在标题下,在内容区域(主体)的顶部。 我是个新手,所以请原谅我可能犯的任何错误。 当我添加边框来分隔每个块(按钮或文本)时,它很好地分隔了按钮,然而,它在导航栏的末尾(右侧)留下了一个小空格。 包装器Div是1000px,我有5个按钮,每个200px,因

  • 我正在制作一个使用HTML的网站,我想把一个导航栏在每一个页面上,所以我创建了一个单独的HTML导航,但我不知道如何把它放在每一个页面上。这是我的导航HTML代码的一小部分,我必须做什么,把它放在每一个页面。而且我并不打算使用PHP。

  • 问题内容: 我想从一个视图控制器导航到另一个。如何将以下Objective-C代码转换为Swift? 问题答案: 为第二个视图控制器创建一个swift文件(SecondViewController.swift),并在适当的函数中键入以下内容: 迅捷2+ 斯威夫特4

  • 问题内容: 如何从一个活动屏幕导航到另一个活动屏幕?在第一个屏幕中,我有一个按钮,如果我单击该按钮,则必须移至另一个“活动”屏幕。 问题答案:

  • 我总是只画一个纹理,选择0纹理单位 选择其他纹理单元的标准是什么? 我的意思是:如果我必须处理多个纹理,我应该选择哪个单元?我是openGL的初学者,我想知道我是否可以使用相同的0纹理单元来制作所有的图形纹理。有多少个纹理单元?如果有N个纹理单元,我最多可以使用N个纹理吗?

  • 到底应该怎么做才能重定向回一个有角度的页面?这是我的输入&来自html的按钮(无角页面) 位于todo-speck.js中,如下所示; 使用在上一个角度页上最后调用以关闭同步。请记住,这个小页面在将用户重定向到即将到来的有角度的页面之前与支付网关服务进行通信。我试图关闭同步,但没有缓解。 另外要注意的是:当我一分钟又一分钟地运行相同的脚本时,我似乎会得到两个不同的错误。我猜是和超时有关。一个是;