我正在使用 react-native 来开发示例应用程序。我在使用 backHandler
时遇到了一个问题在 react-native 侧菜单组件中。
实际上,侧边菜单包含更多页面!但是当点击侧边菜单页面中的 Android 后退按钮时,只有一次后退处理程序起作用。在这里,我使用的是 react-native router-flux。
这里的后退按钮 Action 只被调用一次!
这是我的代码:
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')
}
}
最佳答案
我遇到了同样的问题,这就是我解决它的方法:
当您使用 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;
}
希望它有效。
关于react-native - 使用 react-native router-flux 时,BackHandler 在 react-native 侧菜单中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53293178/