React-native之Navigator调用popToRoute无效解决方案

前言

在使用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即可。

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...