Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带有选项卡的React本机导航注销功能

带有选项卡的React本机导航注销功能
EN

Stack Overflow用户
提问于 2017-06-19 22:15:26
回答 2查看 15.3K关注 0票数 1

我正在尝试用我的应用程序实现登录/注销功能,使用ex导航:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
render() {
    return (
      <TabNavigation tabBarHeight={56} initialTab="devices">
        <TabNavigationItem
          id="devices"
          renderIcon={isSelected => this._renderIcon('hdd-o', isSelected)}>
          <StackNavigation initialRoute="devices" defaultRouteConfig={{
                                 navigationBar: {
                                   backgroundColor: '#B67075',
                                   tintColor: 'white',
                                 },
                               }}/>
        </TabNavigationItem>

        <TabNavigationItem
          id="rules"
          renderIcon={isSelected => this._renderIcon('book', isSelected)}>
          <StackNavigation initialRoute="rules" defaultRouteConfig={{
                                 navigationBar: {
                                   backgroundColor: '#B67075',
                                   tintColor: 'white',
                                 },
                               }}/>
        </TabNavigationItem>
        <TabNavigationItem
          id="settings"
          renderIcon={isSelected => this._renderIcon('cog', isSelected)}>
          <StackNavigation initialRoute="settings" defaultRouteConfig={{
                                 navigationBar: {
                                   backgroundColor: '#B67075',
                                   tintColor: 'white',
                                 },
                               }}/>
        </TabNavigationItem>
      </TabNavigation>

但是,如果我在某个TabNavigationItem屏幕上尝试注销,选项卡导航中的页面就会注销,而不是整个页面。基本上,我在设置页面(第三个选项卡)上有一个注销按钮,当我注销时,该选项卡会返回登录屏幕,而选项卡栏仍然保留。这是该设置组件中的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
logout = () => {
    firebase.auth().signOut().then(() => {
      this.props.navigator.push(Router.getRoute('goodbye'));
}).catch(function(error) {
  // An error happened.
});
  }

是否有不同的导航器功能可以从整个选项卡视图进行导航?是否有应该添加到父选项卡导航组件的侦听器或其他内容?

EN

回答 2

Stack Overflow用户

发布于 2017-06-20 12:39:55

这就是我如何处理应用程序的登录/注销。在Main.js或App.js中,我添加了以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
signout(){
   AsyncStorage.clear(); // to clear the token 
   this.setState({loggedIn:false});
}

..。在componentWillMount中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 AsyncStorage.getItem('token').then((token) => {
      if (token) {
        this.setState({loggedIn: true})
      } else {
        console.log('No user yet Created');
      }
  })

..。在render函数中添加以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (this.state.loggedIn) {
    // pass the signout function to where you want to signout from.
    return <MainNavigator signOut={this.signout.bind(this)} />;    
}
    return <AuthPage/>;
}

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2017-08-07 09:57:41

您应该具有不带选项卡导航的登录页面,因此您可以从App.js / index.js加载登录页面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<NavigationProvider router={AppRouter}>
  <StackNavigation
    id="root"
    initialRoute={Router.getRoute('login')}
  />
</NavigationProvider>

Router.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export const Router = createRouter(() => ({
  'login': () => Login,
  'main': () => Main,
})

然后,如果你想从登录转到主页(带标签导航的页面),你应该重置页面,而不是在android中按下后退按钮(当然,你不会希望在yo登录后返回登录页面)

将此添加到登录函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.props.navigator.immediatelyResetStack([Router.getRoute('main')], 0);

然后在设置页面上,您应该重置导航器,而不是从导航器中使用推送

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
logout = () => {
  firebase.auth().signOut().then(() => {
    this.props.navigator.immediatelyResetStack([Router.getRoute('goodbye')], 0);
  }).catch(function(error) {
    // An error happened.
  });
}

这样,您就有了自己的用于选项卡项的堆栈导航器,以及用于页面导航的堆栈导航器(登录选项卡导航页、返回到登录再见页面)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44640793

复制
相关文章
微信小程序----导航栏选项卡(MUI顶部选项卡)
效果图 WXML <import src="../../template/list.wxml"/> <view class="tui-tabbar-content"> <view class="
Rattenking
2021/02/01
1.6K0
微信小程序----导航栏选项卡(MUI顶部选项卡)
Android应用底部导航栏(选项卡)实例
现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能。 我们先看下该demo实例的框架图: 其
欢醉
2018/01/22
1.5K0
Android应用底部导航栏(选项卡)实例
Jq实现简单的选项卡功能
下面我们使用Jquery实现简单的选项卡效果,以下为示例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> ul,li{ padding: 0; margin: 0; } .content{ width: 380px; } .content #div0,#div1,#div2{ border:solid 2px pink;
申霖
2019/12/27
7750
带有支付功能的产品如何测试?
软件测试人员在进行测试的时候,根据测试项目或者测试对象的不同,会采用不同的方式方法来进行测试,那么,带有支付功能的产品该如何测试呢?在测试过程中又应该注意些什么?
软件测试君
2021/11/09
1.1K0
纯css实现选项卡功能
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ margin: 0; padding: 0; } .tpt-bar { display:flex;
AlbertYang
2020/09/08
9460
C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包
正常如果你想写一个 .NET 的 NuGet 包,直接打包就好了,你的引用程序集会出现在 NuGet 包内的 lib 文件夹内。然而,如果我们的 NuGet 包包含本机依赖的话怎么办呢?
walterlv
2023/10/23
8870
C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包
React Native 系列(八) -- 导航
前言 本系列是基于React Native版本号0.44.3写的。我们都知道,一个App不可能只有一个不变的界面,而是通过多个界面间的跳转来呈现不同的内容。那么这篇文章将介绍RN中的导航。 导航 什么是导航? 其本质就是视图之间的界面跳转,例如首页跳转到详情页。 在RN中有两个组件负责实现这样的效果,它们是: NavigatorIOS React Navigation 你可能在很多地方听说过Navigator,这个老组件会逐渐被React Navigation代替。笔者在最后也会讲解一下Navigator
Scott_Mr
2018/05/16
6K0
React编程式路由导航
编程式路由导航是指在React组件内部通过代码进行页面导航的方式。相比于声明式路由导航(使用<Link>或<NavLink>组件),编程式导航可以根据具体的逻辑和条件进行灵活的导航。React提供了一些路由相关的API,如history对象和useHistory钩子,可以帮助我们进行编程式导航。
堕落飞鸟
2023/05/20
1.6K0
react-navigation导航器
和h5用a标签来跳转不太一样的是,rn必须依赖导航器跳转。导航器也可以看成是一个普通的React组件,你可以通过导航器来定义你的APP中的导航结构。导航还可以渲染通用元素,例如可以配置的标题栏和选项卡栏。
一粒小麦
2019/09/19
6.3K0
react-navigation导航器
Axure实现Tab选项卡切换功能
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/41043255
DannyHoo
2018/09/13
3.3K0
Axure实现Tab选项卡切换功能
thingjs功能导航图
ThingJS 是物联网可视化PaaS开发平台,帮助物联网开发商轻松集成 3D 可视化界面。ThingJS 名称源于 物联网Internet of Things (IoT)中的 Thing (物),ThingJS 使用当今最热门的 Javascript 语言进行开发。不仅可以针对单栋或多栋建筑组成的园区场景进行可视化开发,搭载丰富插件后,也可以针对地图级别场景进行开发。广泛应用于数据中心、仓储、学校、医院、安防、预案等多种领域。
要不要吃火锅
2019/11/06
1.1K0
thingjs功能导航图
给在本机运行的 React 程序配置 HTTPS
如果用 create-react-app 构建一个程序,并且在本地运行,默认情况下会用 HTTP 协议为该程序提供服务。而在生产环境中运行的程序都用 HTTPS 进行服务。
疯狂的技术宅
2020/11/03
2.9K0
给在本机运行的 React 程序配置 HTTPS
React Native导航器之react-navigation使用
在上一节Navigation组件,我们使用系统提供的导航组件做了一个跳转的例子,不过其实战能力不强,这里推荐一个超牛逼的第三方库:react-navigation。在讲react-navigation之前,我们先看一下常用的导航组件。 导航控件 常见的导航主要分为三种: 1.StackNavigator :类似于普通的Navigator,屏幕上方导航栏 2.TabNavigator:obviously, 相当于iOS里面的TabBarController,屏幕下方标签栏 3.DrawerNavi
xiangzhihong
2018/02/06
12.5K0
React Native导航器之react-navigation使用
uniapp实现一个tab选项卡的功能
王小婷
2023/08/10
1.4K0
uniapp实现一个tab选项卡的功能
iOS开发——带有暂停功能的计时器
上篇博客我跟大家分享了如何在iOS系统中使用原生框架获取步数,又是大半个月过去了,运动模块的全部功能也总算完成了,也打算有始有终的把如何做一个跑步类App跟大家分享了。
Originalee
2018/08/30
1.6K0
react-navigation 去除导航阴影
iOS 是通过设置 borderBottomWidth borderBottomColor 来实现的 可以看出iOS 中将 borderBottomWidth 设置为 0 即可
onety码生
2018/11/21
1.7K0
hexo博客添加导航功能
如果你需要新建一个页面,前提是你需要有一个博客,我用的是matery主题,参考了洪卫的博客搭建教程,和闪烁之狐的搭建教程,如果没有博客也可以参考我写的教程搭建一个自己的博客,话不多说,下面开始操作
框架师
2021/03/08
2.1K0
hexo博客添加导航功能
备案的网站怎么注销 为什么备案网站需要注销
备案网站的注销是非常必要的,很多主办者在不想经营网站以后想要注销,那备案的网站怎么注销是大多数人的疑惑。大家都知道如果不及时注销备案网站,不经常使用网站,很多可能被不法分子钻空子并强迫被篡改,然后不法分子可能通过此网站发布一些有害信息。
用户8715145
2021/10/08
14.9K0
Hplus框架动态添加选项卡功能(扩展)
hplus框架确实是后端开发人员的福音,但是有很多功能没有实现,我根据网上大神的做法,实现了动态添加选项卡来打开新页面的功能。
别团等shy哥发育
2023/02/25
7600
Hplus框架动态添加选项卡功能(扩展)
点击加载更多

相似问题

响应本机导航选项卡注销功能

14

无法注销带有嵌套导航器的react本机应用程序?

111

如何在react本机中实现注销功能?

10

React本机底部选项卡导航

121

带有react导航的react本机流停止

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文