当用户单击“添加评论”按钮时,他具有添加评论按钮,他应该能够添加和保存评论。为了保存评论,我使用了Modal。现在我想在用户在Modal之外单击时关闭Modal,这是React Native怎么做?
我指的是这个-> Close react native modal by clicking on overlay?,但该解决方案不适用于我的情况。
注意:我已经添加了关闭模式的按钮,但是我想通过在其外部单击来关闭模式。
代码:
<View>
<Modal
animationType="slide"
transparent={true}
visible={this.state.modalVisible}
onRequestClose={() => {this.setModalVisible(false)}}>
<TouchableOpacity
activeOpacity={1}
onPressOut={() => {this.setModalVisible(true)}}
>
<ScrollView
directionalLockEnabled={true}
contentContainerStyle={styles.scrollModal}
>
<TouchableWithoutFeedback>
<View style={styles.commentModal}>
<View style={{marginLeft: 20, marginRight: 20}}>
<Text style={styles.addCommentModal}>Add a Comment</Text>
<View style={styles.textInputModal}>
<TextInput
editable = {true}
maxLength = {40}
multiline = {true}
onChangeText={(text) => this.setState({text})}
value={this.state.comment_text}
onChangeText={(text) => this.setState({comment_text: text})}
style={{borderRadius: 1}}
/>
</View>
<View style={styles.modalBtnContainer}>
<TouchableOpacity onPress={() => this.addComment(this.state.comment_text, logged_in_user.id, marketingPlanId)}>
<Text style={styles.saveCommentModal}>Save Comment</Text>
</TouchableOpacity>
</View>
<View style={styles.modalBtnContainer}>
<TouchableOpacity onPress={() => this.setModalVisible(false)}>
<Text style={styles.closeCommentModal}>Close</Text>
</TouchableOpacity>
</View>
</View>
</View>
</TouchableWithoutFeedback>
</ScrollView>
</TouchableOpacity>
</Modal>
</View>
CSS:
commentModal: {
position: 'absolute',
bottom: 0,
backgroundColor: '#fff',
height: height/2,
width: width
},
addCommentModal: {
fontSize: 18,
color: '#333',
marginTop: 20,
fontFamily: 'bold',
fontWeight: '500'
},
答案 0 :(得分:1)
您可以在模式中添加按钮以将其关闭。 试试
<Modal>
....
<TouchableOpacity onPress={() =>this.setState({modalVisible:false}))}>
<Text style={styles.saveCommentModal}>Close</Text>
</TouchableOpacity>
....
</Modal>
答案 1 :(得分:1)
请注意,在您发布的链接中,他们正在将onPressOut
用于<TouchableOpacity/>
组件,而您正在使用onPress
,他也从一开始就if (!this.state.modalVisible) return null
使用了它< / p>