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

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

问题描述:

我做了一个工具提示,我希望它在工具提示之外的触摸事件上关闭。但是我不想做出不透明的观点,因为我仍然希望触摸能够处理任何被按下的内容。React Native - 捕捉所有的触摸事件,但触摸的不冒泡

我想包装我的应用程序在TouchableWithoutFeedback

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

这个工作,如果按下元素不是Touchable,但在其他事件似乎得到吞咽并不能上升到顶层onPress

有没有办法让这个工作或其他替代方案?谢谢。

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

如果用TouchableHighlight你会保留,因为渲染的可触摸提示特性的可触摸的背景组件后使你的工具提示组件你组件的顺序。

所以你将有:

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

如果要隐藏或显示它取决于你的状态:

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

而且控制状态,并呈现一个或另一个写的条件:

{this.state.openTooltip ? touchOn : touchOff} 
+0

谢谢,但在问题是我仍然希望应用程序对触摸做出反应 - 例如如果工具提示被打开并且其他可触摸的东西被按下,那么工具提示应该关闭,并且该动作应该在任何被触摸的情况下发生。触摸式背景会阻止该权利? –

+0

嗯所以如果你触摸一个工具提示,它会打开,你可以改变状态,然后渲染一个可触摸的背景,一旦你点击那个背景,你改变状态,改变渲染,不显示该背景 – LuisPinto

+0

看看编辑 – LuisPinto