【发布时间】:2021-03-01 06:27:48
【问题描述】:
我已经为模态编写了上述可重用组件,但是当我在模态外部单击时我想关闭模态,因为我使用了 TouchableWithoutFeedback 但 onPress 我添加了道具,我不想使用我想要的道具在此代码本身中添加逻辑,这样我就不必在我将使用此组件的任何地方调用该道具。请告诉我如何实现这一目标
<Modal animationType={ANIMATIONS.SlideType} transparent={true} visible={props.visible}>
<TouchableWithoutFeedback onPress={props.dismissModal}>
<View style={Styles.opacityContainer}></View>
</TouchableWithoutFeedback>
<View style={Styles.container}>
<View style={Styles.headerContainer}>
<View style={[Styles.header, Styles.directionRow]}>
<View>
<Text style={Styles.headerText}>{bottomSheetStrings.addNew}</Text>
</View>
<View style={SheetStyles.iconContainer}>
<IMIcon
name={Icon.cancel}
size={18}
color={colors.grayish}
iconsStyle={Styles.closeButton}
/>
</View>
</View>
</View>
<View style={Styles.viewContainer}>
<SafeAreaView>
<FlatList
horizontal={false}
data={props.navData}
renderItem={renderActions}
keyExtractor={(item) => item.id}
numColumns={4}
/>
</SafeAreaView>
</View>
</View>
</Modal>
【问题讨论】:
-
这意味着您必须将模态框的可见性状态保持在模态框内,这是您不想做的事情
-
当我在这个Modal之外点击的时候,我想在这个文件中自己写逻辑,这样Modal就会被关闭。
标签: react-native