Вот решение, которое я использую для обработки модальных.
export default class MyModal extends React.Component<Props, State>{
constructor(props: Props){
super(props);
this.state = {
visible: false,
}
}
// Use this method to toggle the modal !
toggleModal = () => {
this.setState({visible: !this.state.visible});
}
render(){
return(
<Modal
isVisible={this.state.visible}
hideModalContentWhileAnimating
onBackdropPress={() => {
this.toggleModal();
}}
useNativeDriver
>
<View style={{backgroundColor: "white", padding: 5}}>
</View>
</Modal>
);
}
}
Если я нажму за ним, модал закроется -> он может закрыться сам.
Теперь, чтобы управлять им из родительского компонента, просто получите ссылку из вашего модала:
<MyModal
ref={ref => {
this.myModal = ref;
}}
/>
И вы можете переключить его из родительского компонента:
toggleMyModal = () => {
if(this.myModal){
this.myModal.toggleModal();
}
}
Дайте мне знать, если он работает:)