Используя пример кода из документации Клавиатура , я бы сделал что-то вроде этого:
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
методе.