gpt4 book ai didi

reactjs - 在 native react 中检测 View 外部的点击

转载 作者:行者123 更新时间:2023-12-03 13:24:57 24 4
gpt4 key购买 nike

如何检测View外部的点击(View是一个宽度和高度都是200的小 View )。例如,我有一个自定义 View (就像模态),它的可见性由状态控制。但是,当在其外部单击时,没有任何更改,因为没有为此执行 setState,我需要捕获用户在除模式内部之外的任何地方点击。这在 React Native 中怎么可能?

最佳答案

在模态周围使用 TouchableOpacity 并检查它是否处于按下状态。看这个例子。

const { opacity, open, scale, children,offset } = this.state;
let containerStyles = [ styles.absolute, styles.container, this.props.containerStyle ];
let backStyle= { flex: 1, opacity, backgroundColor: this.props.overlayBackground };

<View
pointerEvents={open ? 'auto' : 'none'}
style={containerStyles}>
<TouchableOpacity
style={styles.absolute}
disabled={!this.props.closeOnTouchOutside}
onPress={this.close.bind(this)}
activeOpacity={0.75}>
<Animated.View style={backStyle}/>
</TouchableOpacity>
<Animated.View>
{children}
</Animated.View>
</View>

const styles = StyleSheet.create({
absolute: {
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: 'transparent'
},
container: {
justifyContent: 'center',
elevation: 10,
}
});

关于reactjs - 在 native react 中检测 View 外部的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com