У меня странная проблема. В моем собственном приложении для реагирования, если я устанавливаю onPress
событие, View
оно не запускается, но если я устанавливаю то же самое Text
внутри View
, оно срабатывает. Что мне здесь не хватает?
<View style={{backgroundColor: "red", padding: 20}}>
<Text onPress={()=> {
console.log('works');
}
}>X</Text>
</View>
<View style={{backgroundColor: "red", padding: 20}} onPress={()=> {
console.log('does not work');
}
}>
<Text>X</Text>
</View>
Почему это так? Это проблема с React Native? Я использую версию 0.43
react-native
react-native-android
Mehulmpt
источник
источник
Вы можете обернуть вид,
TouchableWithoutFeedback
а затем использоватьonPress
и друзья, как обычно. Также вы все еще можете заблокироватьpointerEvents
, установив атрибут в дочернем представлении, он даже блокирует события указателя на родительскомTouchableWithoutFeedback
, это интересно, это было моей потребностью на Android, я не тестировал на iOS:https://facebook.github.io/react-native/docs/touchablewithoutfeedback.html
источник
pointerEventsNone
дочерний блок на оборачивающего родителя?Для этого можно использовать TouchableOpacity, TouchableHighlight, TouchableNativeFeedback. Компонент просмотра не предоставляет onPress в качестве свойств. Итак, вы используете их вместо этого.
источник
В качестве альтернативы вы также можете предоставить onStartShouldSetResponder своему представлению, например:
источник