【发布时间】:2019-01-23 18:02:25
【问题描述】:
我有一个带有两个屏幕的 react-native 应用程序,主页和详细信息。使用 react-navigation,我将 Stack navigator 设置如下
const RootStack = createStackNavigator(
{
Home: FormComponent,
Details: DetailScreen
},
{
initialRouteName: "Home",
headerMode: "none"
}
);
主页包含一个表单,一旦提交,就会导航到包含相关数据的详细信息屏幕(使用 navigation.navigate("Details",{some data}))。此时,如果我退出应用程序,然后再次打开它,将加载详细信息屏幕,并保留所有数据(而不是主屏幕)。我记录了导航对象数据 (this.props.navigation.),打印出来的就像应用程序从未关闭一样。
我在这里错过了什么吗?我是 React Native 和 Navigation 的新手,但据我了解,这不是预期的行为。
尝试卸载应用程序并重建。这会重置应用程序和主屏幕加载。如果我尝试在不卸载的情况下重新安装,则返回相同的行为。 还尝试在 ComponentWillUnmount() 上手动强制 navigation.goBack() 但没有区别。
【问题讨论】:
-
您确实关闭了它(滑动?)。否则它仍然有一个背景的 AppState。
-
如果您使用的是 Android,则实际上没有您可以控制的“退出”。我不知道 React 如何与 Android 一起工作,但通常你需要考虑应用程序的生命周期,并了解生命周期是由平台驱动的,而不是由应用程序驱动的。确保你知道 React 在这里的工作方式实际上会导致你理解的生命周期变化。
-
@stever 这与将状态存储在持久键属性中的反应导航有关。删除它解决了问题
标签: react-native react-native-android react-navigation