javascript - 在覆盖上,javascript通过单击来关闭本机模式?

  显示原文与译文双语对照的内容
时间:

如果我理解正确,当用户在它的外部单击时,你需要关闭模式。

如果是,我在前面搜索过这个,我记住的唯一解决方案是这个( 这是我一直在用的那个):


render() { 


 if (!this.state.modalVisible)


 return null


 return (


 <View>


 <Modal 


 animationType="fade"


 transparent={true}


 visible={this.state.modalVisible}


 onRequestClose={() => {this.setModalVisible(false)}}


> 


 <TouchableOpacity 


 style={styles.container} 


 activeOpacity={1} 


 onPressOut={() => {this.setModalVisible(false)}}


> 


 <ScrollView 


 directionalLockEnabled={true} 


 contentContainerStyle={styles.scrollModal}


> 


 <TouchableWithoutFeedback>


 <View style={styles.modalContainer}>


//Here you put the content of your modal.


 </View>


 </TouchableWithoutFeedback>


 </ScrollView>


 </TouchableOpacity> 


 </Modal> 


 </View>


 )


} 



//Then on setModalVisible(), you do everything that you need to do when closing or opening the modal.


setModalVisible(visible) {


 this.setState({


 modalVisible: visible,


 })


}



说明

基本上在整个屏幕中使用TouchableOpacity来获取用户单击关闭模式的时间。 TouchableWithoutFeedback是为了避免TouchableOpacity工作在模态的inside 中。

如果你有更好的解决方案,请在这里分享。

...