android 清空路由表,关于react-native中的navigation重置路由和安卓物理返回键的清空上一页状态(重置上一页)...

news/2024/7/8 10:37:11

在开发rn中经常会遇到路由返回时需要重置上一页的状态,也就是清除上一页的路由缓存,这样当你返回上一页的时候,页面就会重新执行componentDidMount等生命周期,直接上代码:

import { StackActions, NavigationActions } from 'react-navigation';

//StackActions对象包含了生成特定actions的方法,即基于栈导航器的actions。这些方法扩展了NavigationActions。这里使用 reast 方法:用一个新的状态替换当前状态

//reast 接收一个对象作为参数,这个对象有三个属性

//index - number - 必需- 当前路由在props.navigation.state路由数组中的索引.

//actions - array - 必需 - 上面提到的,要替换导航状态的actions数组.

//key - string or null - 可选- 如果设置,key所指定的导航器将会重置,如果是null,根导航器会重置.

const resetAction = StackActions.reset({

index: 0,

actions: [

NavigationActions.navigate({ routeName: 'xxxxx' }),

],

});

this.props.navigation.dispatch(resetAction);

这就是跳转重置了路由,同时也可以通过设置actions选项也设置路由的跳转动作

解决完函数跳转后,安卓的物理返回键同样处理也可以重置跳转路由,上代码:

import { BackHandler } from 'react-native';

//首先要监听当前组件的安卓物理返回键

componentDidMount() {

BackHandler.addEventListener("hardwareBackPress", this._goback);

}

componentWillUnmount() {

BackHandler.removeEventListener("hardwareBackPress", this._goback);

}

//不要忘记_goback的this指向

_goback(){

console.log('我监听了物理返回键',this.props)

const resetAction = StackActions.reset({

index: 0,

actions: [

NavigationActions.navigate({ routeName: 'xxxx' }),

],

});

this.props.navigation.dispatch(resetAction);

}


http://www.niftyadmin.cn/n/4607829.html

相关文章

洛谷 P2519 [HAOI2011]problem a

传送门 考虑转化为求最多说真话的人数 设$f(i)$表示排名前$i$的人中最多说真话的人的数量,考虑转移,如果由$j$转移而来,可以设$[j,i]$之间的人全都分数相等,那么式子就是$f[i]f[j-1]sum([j,i])$,其中$sum([j,i])$表示处…

ZeroMQ - 三种模型的python实现

ZeroMQ是一个消息队列网络库,实现网络常用技术封装。在C/S中实现了三种模式,这段时间用python简单实现了一下,感觉python虽然灵活。但是数据处理不如C自由灵活。 1.Request-Reply模式: 客户端在请求后,服务端必须回响应…

iOS 网络编程(1)

HTTP定义了一种在服务器和客户端之间传递数据的途径。 URL定义了一种唯一标示资源在网络中位置的途径。 客户端先建立一个TCP连接,然后发送一个请求。服务器受到请求处理后发送一个响应向客户端传递数据。然后客户端可以继续发送请求或者关闭这个TCP连接。 HTTPS&am…

mysql 12142_求一个PHP+MYSQL的功能齐全的类!

展开全部class mysql{private $db_host; //数据库主机private $db_user; //数据库用32313133353236313431303231363533e4b893e5b19e31333264646431户名private $db_pwd; //数据库用户名密码private $db_database; //数据库名private $conn; //数据库连接标识;private $result; …

android客户端登录,从android客户端登录appengine

我正在尝试登录到应用引擎的appengine并访问应用引擎中的用户服务API.基本上我希望能够看到谁登录到我的servlet.我正在使用从android获取authtoken的身份验证流程,然后从app引擎获取ASID(或SACID)cookie.然后将cookie与http请求一起发送到appengine servlet.这似乎工作得很好,…

ios网络编程(2)

IOS之同步请求、异步请求、GET请求、POST请求 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2、异步请求不会阻塞主线程,而会建立…

mysql ignore lines_自己归纳 MySQL 的一些注意点,劳烦有经验的帮菜鸟确认下对不对,见补充,如果错误,请帮忙指正...

展开全部存在特殊字符e5a48de588b662616964757a686964616f31333332643832情况的处理Book1.csv编号,名称,说明1,测试数据1,"测试CSV文件中,有逗号"2,测试数据2,"测试CSV文件中有""双引号"""3,测试数据3,"测试CSV文件中,有逗号和&q…

浏览器解析html过程,浏览器解析HTML,CSS过程

原标题:浏览器解析HTML,CSS过程每个浏览器都会有自己的呈现引擎,不同内核浏览器之间的解析顺序和方法存在差异,但都是大同小异;a)呈现引擎,呈现引擎一开始会从网络层获取请求文档的内容,内容的大…