Действие бэкхендлера React native сохраняется на следующей странице

#react-native #event-handling

#реагировать-родной #обработка событий

Вопрос:

Я использовал BackHandler для настройки кнопки возврата в Android, это мой код:

   componentDidMount = async () => {
    BackHandler.addEventListener("hardwareBackPress", this.backAction);
  }

  backAction = () => {
    this.props.resetPage("Home");
    return true;
  };

  componentWillUnmount = () => {
    BackHandler.removeEventListener("hardwareBackPress", this.backAction);
  }

 

Но на следующей странице, если я не настрою Backhandler, я нажму назад, это было this.props.resetPage("Home") , помимо того, как его настроить, есть ли у меня способ уничтожить его? Спасибо

Комментарии:

1. Вам нужно проверить, находитесь ли вы на той странице, где вы настраиваете BackHandler действие.

2. Я использую NavigationActions.navigate , я думаю, что следующая страница находится на этой странице, я настраиваю действие BackHandler на предыдущей странице

3. Когда вы переходите от Screen1 к Screen2 , Screen1 они не уничтожаются, они складываются, и именно поэтому вам нужно проверить, на каком экране вы сейчас находитесь.

4. Спасибо за ваш ответ, можете ли вы дать мне какой-нибудь способ проверить, на каком экране сейчас?

5. Используете ли вы react-navigation ?