【问题标题】:React Navigation - Unmounting previous StackNavigator's screen when new is openedReact Navigation - 打开新的 StackNavigator 时卸载以前的屏幕
【发布时间】:2019-09-15 11:41:45
【问题描述】:

我正在为我的 Android 版 React Native 应用程序使用 React Navigation (https://reactnavigation.org)。

我做了类似的流程,如:https://reactnavigation.org/docs/en/auth-flow.html

我添加了注册和忘记密码屏幕。应用程序在登录屏幕上启动(未登录时),您可以选择转到注册屏幕,但在这里我看到了小问题。前一个屏幕 (SignIn) 未卸载并在后台运行。使用这个小例子时这不是什么大问题,但是随着我的应用程序的增长,我会得到很多嵌套的屏幕,我不希望所有这些都加载到后台。

简单问题:如何在切换到不同屏幕后卸载(卸载组件)并在我点击返回按钮后将其加载(安装)回来?

【问题讨论】:

    标签: android react-native react-navigation


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 2018-03-22
      • 1970-01-01
      • 2021-08-12
      • 2020-05-29
      相关资源
      最近更新 更多