我有 2 个嵌套Touchable
,我想在外部Touchable
和内部Touchable
中捕获onPress
事件,但只有内部事件会触发onPress
事件,因此我们可以说该事件不会传播到父元素
我正在使用反应原生 0.57
这是我的零食示例。
我也在这里重新发布我的渲染代码:
<TouchableOpacity onPress={() => alert('outer')}
style={{ backgroundColor: 'red', width: 200, height: 200 }}>
<TouchableOpacity onPress={() => alert('inner')}
style={{ backgroundColor: 'green', width: 100, height: 100 }}
/>
</TouchableOpacity>
如何仅显示内部警报或外部警报。
相反,我想显示外部和内部警报按下绿色视图......
代码是简化版本,在实际情况下,内部Touchable
是一个可以在各种场景中使用的组件,要么在Touchable
内部,要么在非可触摸组件中
触发一个处理程序时调用另一个TouchableOpacity
的onPress
处理程序,只需从触发的处理程序的onPress
处理程序调用它。
<TouchableOpacity onPress={myHandler}
style={{ backgroundColor: 'red', width: 200, height: 200 }}>
<TouchableOpacity onPress={myOtherHandler}
style={{ backgroundColor: 'green', width: 100, height: 100 }}
/>
</TouchableOpacity>
如果myOtherHandler
被最内层的TouchableOpacity
onPress
调用,你这样调用myHandler
:
cost myOtherHandler = () => {
myHandler();
// ...other stuff
}
您可以根据传递的属性,有条件地呈现具有View
或TouchableOpacity
的可重用组件。
如果您总是希望外部组件触发,这可能会解决问题