私はReact Nativeが初めてで、多くの調査を行った後でも、この問題を解決できませんでした。
反応ネイティブ パン レスポンダーパン レスポンダーライブラリを使用して、タッチスクリーンのすべてのタッチ座標を記録しようとしています (モバイル用の Expo Web を使用) 。ただし、ボタンなどのコンポーネントのクリックがパン レスポンダーで認識されないことに気付きました。他のすべてのタッチは、パン レスポンダーによって登録されます。
画面上のすべてのクリックが Pan Responder によって登録され、対応するボタン機能が呼び出されるようにするにはどうすればよいですか?
コード:
import React, { Component } from "react";
import { View, PanResponder, Text, Button } from "react-native";
export default class App extends Component {
panResponder = PanResponder.create({
onStartShouldSetPanResponder: (evt, gestureState) => {
console.log("clicked coord (x|y):", evt.nativeEvent.pageX, evt.nativeEvent.pageY)
},
onStartShouldSetPanResponderCapture: (evt, gestureState) => () => { },
onPanResponderGrant: (evt, gestureState) => { },
onPanResponderRelease: (evt, gestureState) => { },
})
render() {
return (
<View style={{ flex: 1 }}{...this.panResponder.panHandlers}>
<Text>this works (pan responder gets called)</Text>
<View>
<Button onPress={() => { console.log("button pressed") }} title="this not (pan responder doesn't recognize btn clicks)" />
</View>
</View >
);
}
}