23

このドキュメント ( https://facebook.github.io/react-native/docs/gesture-responder-system.html ) には、タッチ イベントは子に渡され、親によってのみ消費されると記載されていますが、 child はイベントに反応しません。別の TouchableOpacity 内にネストされた TouchableOpacity がタッチ時に適切に反応しないという問題に直面しています。

私の構造は次のようなものです

<ScrollView>
  <TouchableOpacity onPress={() => console.log('This is printed always')}>
    <View>
      <Text>I can click here</Text>
      <TouchableOpacity onPress={() => console.log('This is printed never')}>
        <Text>I can click here but the outer onPress is called instead of the inner one</text>
      </TouchableOpacity>
    </View>
  </TouchableOpacity>
</ScrollView>

TouchableOpacitys 内のボタンについても同じことが起こります。ボタンをクリックすると、親の TouchableOpacity の onPress メソッドが呼び出されます。

私は何かを監督していますか?

4

3 に答える 3

35

Touchable opacity のインポートを次のように変更します。

import { TouchableOpacity } from 'react-native-gesture-handler';

以下に、これですべて問題ありません。

import { TouchableOpacity } from 'react-native';
于 2020-04-25T08:35:20.987 に答える