React Native-键盘处于打开状态时,BackHandler不起作用

问题描述 投票:1回答:1

我需要在关闭键盘的同时使用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');
}

但是没有用。键盘处于打开状态时,不会触发这些操作。键盘关闭后,一切正常。

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

javascript android reactjs react-native keyboard
1个回答
0
投票

尝试一下:

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

componentDidMount() {
   this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', 
   this.keyboardDidHide);
}
componentWillUnmount() {
    this.keyboardDidHideListener.remove();
}
keyboardDidHide = () => {
     Keyboard.dismiss();
};
© www.soinside.com 2019 - 2024. All rights reserved.