react-native - 如何在 React Native 中取消 onPress

标签 react-native

我的组件中有一个 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 ,您可以同时传递 onPressonLongPress 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/

相关文章:

reactjs - Jest 和 React Native : How to mock AccessibilityInfo

json - 如何根据符号提取 JSON 对象?

javascript - Expo SDK 44 升级错误 - App.js : [BABEL]: Unexpected token '.'

javascript - 获取 "supportLibVersion", "playServicesVersion"和 "androidMapsUtilsVersion"配置 react-native-maps 中的值

android - 我如何设计一个移动应用程序来跟踪其他应用程序

ios - React Native 中的背景 gps 位置

ios - 在 React Native iOS 中的图像顶部呈现具有透明背景的文本框

reactjs - 如何在 React Material UI 中为属性添加 css

android - 如何指定 FCM 消息的优先级?

javascript - 将对象数组插入数组的最佳方法是什么