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

    xiaoxiao2021-03-25  183

    #前言 在使用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]; } } this.props.navigator.popToRoute(destinationRoute);

    主要原理在于,找到栈中所有的页面,调用getCurrentRoutes方法找到对应的路由,再次执行popToRoute即可。

    转载请注明原文地址: https://ju.6miu.com/read-4838.html

    最新回复(0)