我需要在视图上单击和双击时执行不同的操作。双击我需要像Instagram双击体验一样喜欢图像。轻按一下,我需要打开一个模态。 对于双击,我使用了完美的TapGestureHandler
<TapGestureHandler
ref={this.doubleTapRef}
maxDelayMs={200}
onHandlerStateChange={this.onProductImageDoubleTap}
numberOfTaps={2}
>
<SomeChildComponent ...
但是当我在
<TouchableWithoutFeedback onPress={this.imageTapped}>
双击this.imageTapped
函数的与this.onProductImageDoubleTap
一起被调用两次。完成两次轻击后,有没有办法取消可触摸的轻击?
答案 0 :(得分:2)
最好的解决方案是不使用状态,因为设置状态是异步的。在Android上像我的魅力一样工作!
gcloud ml-engine predict --model $MODEL_NAME --version $VERSION_NAME --json-instances $INPUT_FILE
答案 1 :(得分:0)
由于您要处理一键和双击操作,因此我认为这是一个简单的代码,应该可以解决您的问题
未经测试
首先在状态下定义clickCount:0
state={clickCount:0, //another state}
然后使用setTimeout
创建一个函数来处理用户轻击一次或两次:
handlingTap(){
this.state.clickCount==1 ?
//user tap twice so run this.onProductImageDoubleTap()
this.onProductImageDoubleTap :
//user tap once so run this.imageTapped with setTimeout and setState
//i set 1 sec for double tap, so if user tap twice more than 1 sec, it's count as one tap
this.setState({clickCount:1}, ()=>{
setTimeout(()=>{
this.setState({clickCount:0})
this.imageTapped()
}, 1000)
})
}
<TouchableWithoutFeedback onPress={this.handlingTap()}/>
仅使用TouchableWithoutFeedback
而不是TapGestureHandler
答案 2 :(得分:0)
react-native-double-tap包似乎正是您想要的。