当用户在 Android 上按下后退按钮时,我正在尝试返回。
我在屏幕上添加了监听器,它在远程 Debug模式下接收事件。但是当我不进行远程调试时它不能正常工作。这真的很奇怪。
我将附上我编写的代码 fragment 。
//Navigator
const BoardNavigator = StackNavigator({
Board: { screen: Board }
});
//Board Component
class Board extends Component {
componentWillMount () {
BackHandler.addEventListener('hardwareBackPress', this._onBackPressed);
}
componentWillUnmount () {
BackHandler.removeEventListener('hardwareBackPress', this._onBackPressed);
}
_onBackPressed () {
console.log('backPress');
goBack(this.props.navigation);
return true;
}
onNext() {
this.props.navigation.navigate("Board", {content: ...});
}
}
附加信息: 此 BoardNavigator 是 rootNavigator(StackNavigator) 的嵌套之一。
react :'16.0.0-alpha.12'
native react :“0.47.2”
最佳答案
我实际上使用了如下的后处理程序来控制后退按钮,只需立即按下 2 次即可关闭应用程序。
componentDidMount() {
this._backPress = 0;
BackHandler.addEventListener('backPress', () => {
setTimeout(() => {
this._backPress = 0;
}, 3000);
this._backPress += 1;
if (this._backPress <= 1) {
ToastAndroid.showWithGravity(strings.BACK_BUTTON_ALERT, ToastAndroid.SHORT, ToastAndroid.CENTER);
return true;
}
return false;
});
关于android - BackHandler 无法正常工作 React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46373770/