Reactive Native Zugriff this.prop von innerhalb der Funktion

8

Ich habe den folgenden Code:

%Vor%

Ich bekomme immer die Fehlermeldung:

%Vor%

wenn "onPress" "this.about" aufruft. Ich habe ein console.log innerhalb der Renderfunktion platziert und konnte sehen, dass this.props.nav einen Wert enthielt. Das Problem tritt in der Funktion about () auf und ich bin nicht sicher warum.

Irgendwelche Vorschläge wären großartig?

Danke

    
samb90 26.01.2016, 21:01
quelle

2 Antworten

19

Ich kann nicht sicher sein, aber das sieht für mich wie ein Javascript this bindendes Problem aus. In ReactJS-Komponenten, die mit der ES6-Klassensyntax definiert sind, wird nicht automatisch gebunden this , also wirst du von Javascripts Regeln gebissen, die den Wert von this variieren abhängig davon, wie eine Funktion aufgerufen wird.

Sie müssen möglicherweise .bind explizit verwenden, wenn Sie den Button-Handler setzen:

%Vor%

Also ist this in der Funktion about() identisch mit this in der Funktion render() , in der Sie den Handler eingerichtet haben.

Ich fand ein Repo , das andere Methoden zur Lösung des gleichen Problems zeigt, wie das Binden in einem Konstruktor oder verwenden Sie "Fettpfeil" -Funktionen für Ihren Handler.

Meine Erfahrung ist mit der Verwendung von React für das Web, und ich bin mir nicht sicher, ob sich React Native in diesem Bereich unterscheidet.

    
matts 26.01.2016, 21:22
quelle
3

Sie können die Methodendeklaration auch selbst binden, so dass Sie nicht vergessen müssen, .bind(this) in Ihrer JSX aufzurufen. Dies ist nützlich, wenn Sie viele Tasten haben, die dieselbe Funktion aufrufen.

Zum Beispiel:

%Vor%     
Nicko 25.06.2016 17:17
quelle

Tags und Links