使用React-Native Router-flux时,BackHandler在React-Native侧菜单中不起作用

时间:2018-11-14 04:25:29

标签: react-native react-native-android react-native-navigation react-native-router-flux

我正在研究本机以开发示例应用程序。在本地本机侧面菜单组件中使用backHandler时,这里出现一个问题。

实际上,侧面菜单包含更多页面!但是,当点击侧面菜单页面中的Android后退按钮时,只有后退处理程序起作用。在这里,我正在使用本机路由器通量。

后退按钮动作仅被调用一次!

这是我的代码:

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 :(得分:1)

我遇到了同样的问题,这是我如何解决的: 使用路由器通量时,可以使用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;
    }

希望它能起作用。