我遇到了这个问题,我试图确保触发了父母的onPress,但不会成功
尝试创建一个可重用的自定义touchableOpacity组件,该组件包装其他组件,以便可以决定是否可以显示子项并确定/更改按下子项时会发生什么。
const CustomTouchable = (children, onPress) => {
function handleOnPress = () => {
if(validation){
onPress();
}
}
return <TouchableOpacity onPress={handleOnPress}>{children}</TouchableOpacity>
}
const MainComponent = () => {
function onPress = () => {console.log('test')}
<CustomTouchable onPress={onPress}>
<TouchableOpacity style={styles.button}>
<Text>Press Here</Text>
</TouchableOpacity>
</CustomTouchable>
}
但是父onPress没有触发,我该如何触发它?
答案 0 :(得分:4)
这是因为触摸事件是由孩子而不是父母接收的。将以下道具分配给您的子组件
pointerEvents={"none"}
答案 1 :(得分:-1)
禁用第二个这样的TouchableOpacity
<TouchableOpacity onPress={onPress}>
<TouchableOpacity
disabled
style={styles.button}
>
<Text>Press Here</Text>
</TouchableOpacity>
</TouchableOpacity>