Как правильно использовать React Native onLongPress? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть простой кусок кода, который представляет собой TouchableOpacity с подпоркой onLongPress, но, похоже, он не работает.

<TouchableOpacity delayLongPress={10} onLongPress={()=>{console.log("pressed")}} activeOpacity={0.6}>
  <Text>BUTTON</Text>
</TouchableOpacity>

Я пытался удалить опору задержки, но это все равно не работает.Однако изменение onLongPress на onPress, похоже, работает, но я хочу, чтобы функция продолжительного нажатия была.Я тестирую это на симуляторе Android.

Ответы [ 4 ]

0 голосов
/ 30 апреля 2019

, если вы хотите показать вид при длительном нажатии и скрыть его при отпускании:

<TouchableOpacity
    onPress={this._onPress}
    onLongPress={this._onLongPress}
    onPressOut={this._onPressOut}
>
            ....
</TouchableOpacity>



_onLongPress = () => {
    this.setState({
        modalVisible: true
    })
}
_onPressOut = () => {
    this.setState({
        modalVisible: false
    })
}
0 голосов
/ 29 ноября 2018

Вы можете протестировать на симуляторе IOS или в пакете релиза.

0 голосов
/ 20 февраля 2019

Я использовал этот следующий код с «activ»: «16.6.3» и «Reaction-native»: «0.58.5»

<TouchableOpacity
    onLongPress={this.handlerLongClick}
    onPress={this.handlerClick}
    activeOpacity={0.6}
    style={styles.button}>
        <Text style={styles.TextStyle}> LONG PRESS THE BUTTON </Text>
</TouchableOpacity>

Теперь дело в том, что все работает нормально, поэтому ядумаю, что в предыдущей версии была ошибка, и теперь она работает нормально.

0 голосов
/ 28 ноября 2018

Согласно эта проблема происходит случайно, после тестирования на реальном устройстве с включенным React Native Debugger.Отключение React Native Debugger устранит вашу проблему.

...