React-native之Navigator调用popToRoute无效解决方案
发布时间:2020-12-15 07:31:00 所属栏目:百科 来源:网络整理
导读:前言 在使用RN过程中, 经常会遇到如下场景, 当前在D页面, 栈里有A =》 B = C = D 四个页面, 我们往往需要返回之前的某个页面(B页面),并卸载 C,D两个页面,此时就需要用到官方定义的popToRouter方法,但是本人尝试了一下无效, this .props .navigator
前言在使用RN过程中, 经常会遇到如下场景, 当前在D页面, 栈里有A =》 B => C => D 四个页面, 我们往往需要返回之前的某个页面(B页面),并卸载 C,D两个页面,此时就需要用到官方定义的popToRouter方法,但是本人尝试了一下无效, this.props.navigator.popToRoute({name:'login'});
于是查找一番找个了一个方法。 方法const routes = this.props.navigator.state.routeStack;
let destinationRoute = '';
for (let i = routes.length - 1; i >= 0; i--) {
if(routes[i].name === 'LoginView'){
destinationRoute = this.props.navigator.getCurrentRoutes()[i]
return;
}
}
this.props.navigator.popToRoute(destinationRoute);
主要原理在于,找到栈中所有的页面,调用getCurrentRoutes方法找到对应的路由,再次执行popToRoute即可。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |