Gibt es eine Möglichkeit, Berührungsereignisse für Text in React Native zu ignorieren?


73

Ich möchte schwebende Beschriftungen implementieren, dafür habe ich eine Textkomponente über einem TextInput. Ich möchte alle Berührungsereignisse im Text ignorieren, damit der TextInput darunter alle Ereignisse erhält. Gibt es eine Möglichkeit, dies zu tun? In CSS hatten wir früher keine Zeigerereignisse. Ich bin mir nicht sicher, wie ich das in React Native machen soll.


Es wäre hilfreich, uns zu zeigen, was Sie bisher haben.
Rian Schmits


Wenn jemand nach der Lösung in normalem React sucht ( nicht in React Native ), können Sie einfach das CSS pointer-events: nonefür das Element festlegen, durch das die Klicks geleitet werden sollen.
ProtoEvangelion

Antworten:


159

In React-Native pointerEventsist eine Requisite , kein Stil.

    <View pointerEvents="none" />

2
scheint zu funktionieren, wenn es so eingestellt ist <View pointerEvents={'none'} />
pnizzle

7
In einigen Fällen möchten Sie möglicherweise, dass die Unteransichten weiterhin das Ziel von Berührungen sind, sodass pointerEvents = {'box-none'} die geeignete Lösung ist: facebook.github.io/react-native/docs/view.html#pointerevents
RaphArbuz

ICH DANKE DIR SEHR!
Bruno de Sales

42

In pointerEvents: 'none'auf die TextKomponente. Auf diese Weise können Berührungsereignisse an die Vorfahren der Komponente gesendet werden, nicht jedoch an die Komponente selbst oder ihre untergeordneten Komponenten.

React Native unterstützt auch 'box-none', wodurch Berührungsereignisse an die Vorfahren und untergeordneten Elemente der Komponente gesendet werden können, und schließt nur die Komponente selbst aus.


13
Aus irgendeinem Grund konnte ich es nicht dazu bringen, an einer TextKomponente zu arbeiten, aber das Einwickeln Textin eine Viewund das Platzieren der pointerEvents="none"Requisite löste es.
Cryszon

29

Ich hatte das gleiche Problem wie Cryszon. Unter Android scheint pointerEvents = "none" für Textkomponenten nicht zu funktionieren.

Das Umschließen des Textes in eine Ansicht und das Platzieren der Stütze pointerEvents = "none" löste das Problem.


0

pointerEvents funktionieren nur in der Ansicht, nicht in Text oder TouchableOpacity

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.