我正在使用React Native应用程序并使用跨平台的Navigator实现。在一个实例中,我有一个场景,“登录”路线,当用户成功登录时,我想推送到另一个场景,即“主页”路线。
我可以通过两种方式执行此操作:navigator.immediatelyResetRouteStack([routes.home])
和navigator.push(routes.home)
。在第一个实现中,登录场景将被卸载,但我没有获得场景转换的好处。在第二个实现中,我得到一个场景转换,但是登录路由不会被卸载,即使我没有必要转换回它。
有没有办法实现“推送和卸载上一次”转换?
答案 0 :(得分:0)
routeStack是所有场景的数组。转换完成后如何将其从阵列中删除?
答案 1 :(得分:0)
您检查过replace(route)
吗?
答案 2 :(得分:0)
经过进一步的实验,navigator.resetTo(route)
被证明是一个合适的选择。请注意,这不允许您使用一堆路由重置。
答案 3 :(得分:0)
Navigator.resetTo(route)只会在您从其他索引重新设置时执行转换。如果您在初始路线上,则重置不提供过渡。对于索引> 0,resetTo提供与pop!
相同的转换