1. 程式人生 > >React-Native在登陸成功或登出後銷燬路由,只保留當前棧

React-Native在登陸成功或登出後銷燬路由,只保留當前棧

前言

在移動APP中,我們經常會遇到登陸成功,或者登出後,不允許返回上一頁面,這就需要我們清楚棧中的其餘view, RN中我們應該如何處理呢?

方法

主要原理是藉助於onDidFocus和immediatelyResetRouteStack兩個方法實現。

對此我們先看看Navigator提供給我們預設的方法有哪些?

  • getCurrentRoutes() - 獲取當前棧裡的路由,也就是push進來,沒有pop掉的那些。
  • jumpBack() - 跳回之前的路由,當然前提是保留現在的,還可以再跳回來,會給你保留原樣。
  • jumpForward() - 上一個方法不是調到之前的路由了麼,用這個跳回來就好了。
  • jumpTo(route) - 跳轉到已有的場景並且不解除安裝。
  • push(route) - 跳轉到新的場景,並且將場景入棧,你可以稍後跳轉過去
  • pop() - 跳轉回去並且解除安裝掉當前場景
  • replace(route) - 用一個新的路由替換掉當前場景
  • replaceAtIndex(route, index) - 替換掉指定序列的路由場景
  • replacePrevious(route) - 替換掉之前的場景
  • resetTo(route) - 跳轉到新的場景,並且重置整個路由棧
  • immediatelyResetRouteStack(routeStack) - 用新的路由陣列來重置路由棧
  • popToRoute(route) - pop到路由指定的場景,在整個路由棧中,處於指定場景之後的場景將會被解除安裝。
  • popToTop() - pop到棧中的第一個場景,解除安裝掉所有的其他場景。

在具體使用中,我們需要新增一個onDidFocus屬相,然後判斷當前路由是否要求重置整個線路。

<Navigator
    ref="navigator"
    initialRoute={{name: 'LaunchView'}}
    renderScene={this.renderScene}
    configureScene={this.configureScene}
    onDidFocus={(route) => {
        if (route.reset) {                    this
.refs.navigator.immediatelyResetRouteStack([{ name: route.name }]) } }} />

使用方法:

this.props.navigator.push({name: 'yourview Name',reset:true});

ok,搞定了!

相關推薦

React-Native登陸成功登出銷燬路由保留當前

前言 在移動APP中,我們經常會遇到登陸成功,或者登出後,不允許返回上一頁面,這就需要我們清楚棧中的其餘view, RN中我們應該如何處理呢? 方法 主要原理是藉助於onDidFocus和immediatelyResetRouteStack兩個方法實現。

React-Native到0.44版本Navigator 不能用的問題

base targe 問題 all pan ria been github pre 新升級 到0.46版本以後 Navigator 不能使用報錯。 ‘Navigator is deprecated and has been removed from this packag

React-native 登陸註冊驗證

import React, { Component } from “react”; import { StyleSheet, Text, View, Image, TouchableHighlight,Button,AsyncStorage } from “r

React Native 處理TextInput在輸入點選佈局空白處軟體盤能彈出和收回。

React Native 處理軟體盤彈出和收回。 現在是有這樣一個需求,就是,在TextInput中輸入文字 ,會彈出軟體盤 ,但是 ,當我點選空白處,軟體盤卻不退出,我想點選其他空白處,軟體盤隱藏,怎麼做了。軟體盤之所以不能退出,是因為 輸入的時候,當你輸入完畢後,焦點

React Native 常用命令快捷鍵合集

命令: react-native init “專案名稱” : 執行React Native的初始化命令,建立一個專案 npm install : 需要在工程目錄下用此命令將依賴包下載下來 iOS快捷鍵: 蘋果鍵+R(模擬器) : 模擬器reload

react-native ScrollView 實現上拉滑動全屏下拉恢復原先大小

ScrollView 系列的都可以完成, 比如 FlatView 和 SectionList 都可以。 1 需求 大概就是一個 scroll 元件向上滑動的時候可以完全展示出來。完全展示之後下滑再恢復縮小時的高度。 1.1需求分析 縮小時不允許滾動

react-native flatlist 的進階使用 (頭尾間隔元件和滾動事件)

 0.43之後 RN添加了Flatlist元件,作為ListView的增強版,FlatList有著很強的效能上的優勢,而且使用起來也更簡單。這裡著重介紹一下以下東西:1. 新增頭部元件,2. 新增尾部元

React Native基於最新版本實現JsBundle預載入解決白屏等待介面秒開優化

剛建立的React Native 微信公眾號,歡迎微信掃描關注訂閱號,每天定期會分享react native 技術文章,移動技術乾貨,精彩文章技術推送。同時可以掃描我的微信加入react-native技術交流微信群。歡迎各位大牛,React Native技術愛好者加入

React Native 效能優化指南【全網最全值得收藏】

2020 年談 React Native,在日新月異的前端圈,可能算比較另類了。文章動筆之前我也猶豫過,但是想到寫技術文章又不是趕時髦,啥新潮寫啥,所以還是動筆寫了這篇 React Native 效能優化的文章。 本文談到的 React Native 效能優化,還沒到修改 React Native 原始碼

前端路由路由前端渲染和端渲染

1.vue-router和koa-router的區別 vue-router是前端路由,koa-router是後端路由。 前端路由 定義:在單頁面應用,大部分頁面結構不變,只改變部分內容的使用 優點:使用者體驗好,不需要每次都從伺服器全部獲取,快速展現給使用者 缺點: 使用瀏覽器的

react-native之遠程圖片修改APP不更新

reactnative react-native react native 刷新圖片 base64今天在做客戶的項目時,有一個需求是App上要顯示遠端的圖片,而遠端的圖片有可能會更新,但圖片名不變。在react-native中,顯示圖片是用的自帶的Image組件,大家都知道react在更新組件之前都會判斷pr

springboot2 security 登陸成功無法跳轉到指定頁面還是預設頁面

轉載於https://blog.csdn.net/qinkaiyuan94/article/details/82085622 一開始用的這個 http     .formLogin()     .defaultSuccessUrl("/login/su

shiro 登陸成功subject依然為空

shiro框架是一個強大的輕量級java安全框架。它提供了許可權驗證、加密、session管理的功能。shiro易用、上手快,應用場景大到企業級應用、小到手機應用都可以使用。本文就針對shiro的subject一個點展開,講講這個subject的來龍去脈。 我關注這個類要從一次錯誤說起。在我

ubuntu 更新軟體迴圈登陸頁面登陸成功無法進入桌面

點了ubuntu系統自動提示的軟體升級以後,重啟電腦導致的。輸入帳號密碼成功以後,螢幕黑了一會,閃一下又回到輸入帳號密碼介面,如此迴圈。網上百度了說有很多原因,如:    1,系統的Xauthority檔案出現了問題,當前使用者無許可權呼叫他,所以使用rm -rf .Xaut

react-native-echarts 安卓版打包圖表不顯示

1、相容手機端 <meta name="viewport" content="width=device-width, initial-scale=1"> 2、解決android打包後不顯示 複製檔案tpl.html(路徑: node_mod

login控制元件的登陸成功跳轉到哪個頁面

 <asp:Login ID="Login1" runat="server" DestinationPageUrl="~/manage.aspx">        </asp:Login> 注意紅

PanResponder react native 手勢 觸控

相對於原生的觸控事件處理機制,RN也有一套自己的處理機制,大體上和原生差不多,但是基於RN是應用在iOS和Android的兩個平臺,有時候會存在一些手勢上的衝突,比如,在一個橫向滑動的ScrollView上放置兩個TouchableXXX元件,有時我們橫向滑動的

ubuntu 迴圈登陸(閃退登陸成功又跳回登陸介面)

表現為在圖形登陸介面能夠正常驗證密碼正誤,在正確輸入密碼後,出現命令列下的自檢介面,然後立即閃回到登陸介面。而且這個問題一般是出現在某些賬戶下,其他賬戶尤其是guest賬戶不受影響。而且命令列登陸也不受影響。 這個問題存在於ubuntu的多個版本中:ubuntu 12.04

【譯】關於React Native在專業用於多種規模專案的思考

React Native已經存在了一段時間了。當Android支援釋出時(iOS釋出後大約一年),我把它用於專業。我決定投入時間進行跨平臺開發。當我發現React Native時,我已經是iOS開發人員已經有6年了,而且不僅僅是Mac OS X開發人員。 我在App Store和Play商店為我的客戶開發了

react native android6+拍照閃退重啟的解決方案

.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、圖片.ofImage()、視訊.ofVideo()、音訊.ofAudio() .maxSelectNum(imageCount)// 最大圖片選擇數量 int .mi