React Native - 捕捉所有触摸事件,但Touchable不会冒泡

时间:2016-07-28 09:39:56

标签: javascript react-native touch

我做了一个工具提示,我想让它关闭工具提示之外的触摸事件。但是我不想制作不透明的视图,因为我仍然希望触摸能够处理任何被按下的内容。

我尝试将应用程序包装在TouchableWithoutFeedback

<TouchableWithoutFeedback onPress={(e) => this.onAppTouch(e)}>

如果按下的元素不是Touchable,则此方法有效,但是此事件似乎被吞下并且没有冒泡到顶级onPress

有没有办法让这个工作或另类?感谢。

编辑:这似乎是Touchables的限制(他们吞下手势) - https://github.com/facebook/react-native/issues/6796

1 个答案:

答案 0 :(得分:0)

如果使用TouchableHighlight在可触摸背景组件之后渲染工具提示组件,则由于组件的渲染顺序,您将保留可触摸的工具提示特性。

所以你会:

| Tooltip1 | | Tooltip2 | |背景可触摸|

如果你想隐藏它或根据你的状态显示它:

var touchOn = (<TouchableHighlight>Background Component</TouchableHighlight>)
var touchOff = <Your other component/>

控制状态并渲染一个或另一个写条件:

{this.state.openTooltip ? touchOn : touchOff}