小编典典

反应导航检查上一个屏幕是否存在

reactjs

我拼命地寻找一种可能性,以检查ReactNavigation中是否存在先前的屏幕。

使用this.props.navigation.goBack()收益false,如果没有以前的路由存在,但我不能使用它,因为如果以前的路由存在我重定向。

是否可以检查我是否打开了该应用程序,而不是从另一个屏幕导航到主屏幕?

谢谢。我没有使用Redux。这样会使这些东西变得更容易,但是我现在想避免使用它。


阅读 314

收藏
2020-07-22

共1个答案

小编典典

可能的解决方案(不确定是否是最好的解决方案)是在上一个屏幕的param对象中花费。这样,如果存在参数将意味着存在先前的屏幕。

例如:

const navigateAction = NavigationActions.navigate({
  routeName: 'Profile',

  params: { previous_screen: 'CURRENT_SCREEN' },

  action: NavigationActions.navigate({ routeName: 'NEXT_SCREEN' }),
});

this.props.navigation.dispatch(navigateAction);

然后在下一个屏幕中:

const { navigation } = this.props;
if (navigation.state.params && navigation.state.params.previous_screen) {
  // A previous screen exists
} else {
  // No previous screen
}
2020-07-22