BackHandler не работает в реагирующем родном боковом меню при использовании реагирующего родного router-flux - PullRequest
0 голосов
/ 14 ноября 2018

Я работаю над реагирующим для разработки примера приложения. Здесь у меня возникла проблема, когда я использовал backHandler в компоненте бокового меню реагирования.

На самом деле, боковое меню содержит больше страниц! Но при нажатии кнопки возврата Android на страницах бокового меню работает только один раз. Здесь я использую реагирующий на родину router-flux.

Здесь действие кнопки возврата вызывается только один раз!

Это мой код:

componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
}

componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
}

handleBackPress = () => {
    let {isGoback} = this.props.isGoback
    //alert("Hi " + isGoback)

    if(isGoback === "Contact Us"){
        //alert("Hi: " + isGoback)
        Actions.BasicSideMenuMain({selectedItem:'Home'});
        //Actions.replace('BasicSideMenuMain')
    }
}

1 Ответ

0 голосов
/ 06 января 2019

У меня была та же проблема, вот как я решил ее: так как вы используете router-flux, вы можете использовать Actions.currentScene, чтобы найти страницу, на которой вы находитесь

handleBackPress = () => {
        if(Actions.currentScene === 'mainPage'){   // 'mainPage' is kay of your scene
            BackHandler.exitApp();  // or anything you want
            return false;
        } 
        Actions.pop();  // for all the pages beside mainPage in side menu always go back
        return true;
    }

Надеюсь, что это работает.

...