首页 > 解决方案 > React Native - 当键盘处于打开状态时,BackHandler 不起作用

问题描述

我需要在关闭键盘时使用 setState 关闭视图。在 TextInput 中使用 onBlur 事件,它工作正常。但是在android中按下硬件后退按钮,键盘也在关闭。但是 onBlur 事件还没有被调用。TextInput 仍然集中,但键盘关闭。对于反手,我使用以下代码,

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

handleBackPress = () => {
    console.log("HANDLE BACK PRESSS")
    return true;
}

我也尝试了以下方法-Keyboard.addListener

componentWillMount () {
    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
    this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
}

componentWillUnmount() {
    this.keyboardDidShowListener.remove();
    this.keyboardDidHideListener.remove();
}

_keyboardDidShow() {
    alert('Keyboard Shown');
  }

_keyboardDidHide = () => {
    alert('Keyboard Hidden');
}

但是没有用。当键盘处于打开状态时,这些事情不会触发。键盘关闭后,一切都按预期工作。

建议在键盘处于打开状态时按下后退按钮时获得触发器的一些方法。

标签: javascriptandroidreactjsreact-nativekeyboard

解决方案


尝试这个:

从'react-native'导入{键盘}

componentDidMount() {
   this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', 
   this.keyboardDidHide);
}
componentWillUnmount() {
    this.keyboardDidHideListener.remove();
}
keyboardDidHide = () => {
     Keyboard.dismiss();
};

推荐阅读