反应导航-当新打开时卸载先前的StackNavigator屏幕

时间:2019-09-15 11:41:45

标签: android react-native react-navigation

我正在为我的Android本机应用程序使用React Navigationhttps://reactnavigation.org)。

我进行了与https://reactnavigation.org/docs/en/auth-flow.html

中所述类似的流程

我添加了SignUp和ForgottenPassword屏幕。应用程序在登录屏幕(未登录)上启动,您可以选择进入登录屏幕,但是在这里我看到了小问题。上一个屏幕(SignIn)尚未卸载,并在后台运行。使用这个小示例时,这不是什么大问题,但是随着我的应用程序的发展,我将获得许多嵌套屏幕,并且我不希望所有这些屏幕都在后台加载。

简单的问题:如何在切换到其他屏幕后卸载(卸载组件)并在单击“后退”按钮后将其装载(装载)?

1 个答案:

答案 0 :(得分:1)

我要说的就是移动导航的工作原理。导航堆栈由React Navigation自动管理,并记录在here中。 想象一下一个iOS应用,您可以在其中滑动返回到上一个屏幕-您可以在滑动过程中看到上一个屏幕。如果该组件确实卸下,则不可能。

不过,您可以使用navigation道具来管理导航堆栈:请参见navigation prop reference。使用navigation.replace应该正确地卸载组件,因为它已被新的路由替换,因此不再需要(如果您没有使用相同的路由,但是使用了不同的参数来替换它)。