我的组件中有一个 TouchableHighlight 区域。
我想触发 _onPress
方法进行快速点击,并触发 _onLongPress
进行长时间点击。
这是可行的,但是当我释放水龙头时,总是会触发 _onPress
方法。
如何根据短按或长按来仅触发其中一种方法?
class MyClass extends React.Component {
_onPress = () => {
console.log("Press")
}
_onLongPress = () => {
console.log("LongPress")
}
render() {
return (
<TouchableHighlight
style={styles.touchable}
underlayColor="white"
delayPressIn={2000}
onPress={this._onPress}
onPressIn={this._onLongPress}
>
<View style={styles.box}>
<Image style={styles.logo} source={this.state.logo.id} />
</View>
</TouchableHighlight>
)
}
}
非常感谢:)
最佳答案
根据doc ,您可以同时传递 onPress
和onLongPress
Prop 直接发送到TouchableHighlight
组件,因为它继承了 TouchableWithoutFeedback
中可用的所有 props .
<TouchableHighlight
onPress={this._onPress}
onLongPress={this._onLongPress}
delayLongPress={2000}
...
>
...
</TouchableHighlight >
只会触发两个事件之一。 Here您可以尝试我正在谈论的示例。
关于react-native - 如何在 React Native 中取消 onPress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59053267/