Reaktion this.state ist nicht definiert?

7

Ich folge einem Anfänger-Tutorial von Pluralsight, beim Senden des Formulars wird ein Wert an addUser component method übergeben und ich muss userName auf this.state.users schieben, aber ich bekomme den Fehler

%Vor%

Komponente

%Vor%     
Ivan Topić 01.09.2017, 10:57
quelle

1 Antwort

23

Wenn Sie {this.addUser} aufrufen, wird es aufgerufen, hier ist this eine Instanz Ihrer Klasse (Komponente) und gibt Ihnen daher keinen Fehler, weil addUser method in Ihrer Klasse scope existiert. Wenn Sie jedoch unter addUser -Methode sind, verwenden Sie this , um die state zu aktualisieren, die in vorhanden sind der Umfang der Klasse (Komponente), aber derzeit sind Sie im Rahmen der addUser -Methode und es gibt Ihnen einen Fehler wie unter addUser Scope haben Sie nichts wie Staat, Benutzer usw. Um dieses Problem zu lösen, müssen Sie this binden, während Sie addUser method aufrufen. So kennt Ihre Methode immer die Instanz von this .

Die endgültige Änderung in Ihrem Code sieht dann so aus: -

%Vor%

ODER

Sie können this im Konstruktor binden, da dies der Ort ist, an dem Sie Dinge initialisieren sollten, da Konstruktormethoden zuerst aufgerufen werden, wenn die Komponenten in DOM rendern.

So können Sie es auf diese Weise tun: -

%Vor%

Und jetzt kannst du es auf normale Weise wie zuvor nennen: -

%Vor%

Ich hoffe, das wird funktionieren, und ich habe es dir klar gemacht.

    
Vinit Raj 01.09.2017, 12:50
quelle

Tags und Links