React Navigation check if previous screen exists

后端 未结 5 747
甜味超标
甜味超标 2020-12-10 16:37

I am looking desperately for a possibility to check if a previous screen exists in ReactNavigation.

Using this.props.navigation.goBack() returns

5条回答
  •  醉话见心
    2020-12-10 17:10

    What could be a solution (not sure that it's the best one) would be to spend in the param object the previous screen. With that, if the params exists would mean that a previous screen exists.

    For example:

    const navigateAction = NavigationActions.navigate({
      routeName: 'Profile',
    
      params: { previous_screen: 'CURRENT_SCREEN' },
    
      action: NavigationActions.navigate({ routeName: 'NEXT_SCREEN' }),
    });
    
    this.props.navigation.dispatch(navigateAction);
    

    And then in the next screen:

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

提交回复
热议问题