react-native - 键盘启动时如何隐藏组件?
问题描述
除了安装软件包之外,有没有办法在键盘显示时隐藏组件?
解决方案
使用键盘文档中的代码示例,我会做这样的事情:
class Example extends Component {
state = {keyboardOpen: false};
componentDidMount() {
this.keyboardDidShowListener = Keyboard.addListener(
'keyboardDidShow',
this._keyboardDidShow,
);
this.keyboardDidHideListener = Keyboard.addListener(
'keyboardDidHide',
this._keyboardDidHide,
);
}
componentWillUnmount() {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
_keyboardDidShow() {
this.setState({
keyboardOpen: true
});
}
_keyboardDidHide() {
this.setState({
keyboardOpen: false
});
}
render() {
return (
{!this.state.keyboardOpen && <MyComponent />}
);
}
}
基本上,在componentDidMount
您订阅show
和hide
键盘事件。您可以跟踪组件中的键盘当前状态,state
并根据方法中的值有条件地this.state.keyboardOpen
显示。MyComponent
this.state.keyboardOpen
render
推荐阅读
- linux - KSH Shell 脚本不压缩文件
- node.js - 节点 - 嵌套 For 循环异步行为
- c# - POST 成功但数据没有出现在控制器中
- excel - Excel Shortout 键格式化轴绑定?
- nginx - Nginx 服务服务器和静态构建
- c++ - 如何将浮点数转换为向量
在 C++ 中? - c# - httpTrigger 中的 Blob 绑定在 VS2017 Azure 函数模板中不起作用
- python - 为多个在 python 中排名的组创建前 10 名列表
- mysql - mysql curdate 方法查询没有给出正确的结果
- java - 为什么我不能强制 EditTextPreference 只取数字?