我拼命地寻找一种可能性,以检查ReactNavigation中是否存在先前的屏幕。
使用this.props.navigation.goBack()收益false,如果没有以前的路由存在,但我不能使用它,因为如果以前的路由存在我重定向。
this.props.navigation.goBack()
false
是否可以检查我是否打开了该应用程序,而不是从另一个屏幕导航到主屏幕?
谢谢。我没有使用Redux。这样会使这些东西变得更容易,但是我现在想避免使用它。
可能的解决方案(不确定是否是最好的解决方案)是在上一个屏幕的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 }