web-dev-qa-db-ja.com

React Native onLongPressを適切に使用するにはどうすればよいですか?

OnLongPressプロップを使用したTouchableOpacityの単純なコードがありますが、機能していないようです。

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

遅延プロップを削除しようとしましたが、それでも機能しません。 onLongPressをonPressに変更することは機能しているように見えますが、長押し機能が必要です。私はこれをAndroidシミュレーターでテストしています。

3
Nerdragen

長押しでビューを表示し、リリース時に非表示にする場合:

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



_onLongPress = () => {
    this.setState({
        modalVisible: true
    })
}
_onPressOut = () => {
    this.setState({
        modalVisible: false
    })
}
3
AlainIb

この問題 によると、これは、React NativeDebuggerが有効になっている実際のデバイスでテストした後にランダムに発生します。React NativeDebuggerは問題を解決します。

3
romin21