我有2个嵌套的Touchable
,我想捕获外部onPress
和内部Touchable
中的Touchable
事件,但仅捕获内部onPress
会触发<TouchableOpacity onPress={() => alert('outer')}
style={{ backgroundColor: 'red', width: 200, height: 200 }}>
<TouchableOpacity onPress={() => alert('inner')}
style={{ backgroundColor: 'green', width: 100, height: 100 }}
/>
</TouchableOpacity>
事件,因此可以说该事件未传播到父元素
我正在使用React-Native 0.57
这是我的小吃example。
我还在这里重新发布了渲染代码:
Touchable
仅显示内部警报或外部警报的方式。
相反,我想显示外部警报和内部警报,方法是按绿色的View ...
代码是简化版本,在实际情况下,内部Touchable
是可以在各种情况下使用的组件,可以在$ cat john_ward.txt
1 4
2 5
3 6
$ awk ' {$(NF+1)=s+=$NF}1 ' john_ward.txt
1 4 4
2 5 9
3 6 15
$
内部使用,也可以在非Touchable组件中使用
答案 0 :(得分:0)
如果要在触发另一个TouchableOpacity
的{{1}}处理程序时调用它,只需从被触发的另一个onPress
处理程序中调用它即可。
onPress
如果最里面的<TouchableOpacity onPress={myHandler}
style={{ backgroundColor: 'red', width: 200, height: 200 }}>
<TouchableOpacity onPress={myOtherHandler}
style={{ backgroundColor: 'green', width: 100, height: 100 }}
/>
</TouchableOpacity>
的{{1}}调用了myOtherHandler
,则您像这样调用TouchableOpacity
:
onPress
答案 1 :(得分:0)
您可以根据传递的属性,使用View
或TouchableOpacity
有条件地渲染可重用组件。
如果您始终希望外部组件触发此操作,则可能会成功