javascript - 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');
}
但是没有用。当键盘处于打开状态时,这些事情不会触发。键盘关闭后,一切都按预期工作。
建议在键盘处于打开状态时按下后退按钮时获得触发器的一些方法。
解决方案
尝试这个:
从'react-native'导入{键盘}
componentDidMount() {
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide',
this.keyboardDidHide);
}
componentWillUnmount() {
this.keyboardDidHideListener.remove();
}
keyboardDidHide = () => {
Keyboard.dismiss();
};
推荐阅读
- python - Python VLC 运行 pause() 两次不恢复播放?
- html - 特定字体导致文本重叠错误
- java - AdMob 插页式仅横向方向
- r - 条形图:在 R 中添加 GEOM_TEXT 而只有 X 映射
- python - Python - While 循环 - 从列表中检查
- python - Django Rest:如何从相关对象 API 端点更新外键对象的字段
- oracle-adf - OAF 高级表加载缓慢
- angular12 - 编译.errors.push(新的 webpack_1.WebpackError(消息))
- ms-access-2016 - Access 2016 内联表达式随机停止工作
- javascript - 使用 PHP/JS 将 API 作为对象返回