Ich habe eine einfache Funktion (innerhalb einer Komponente React):Wie geben Sie ein Objekt mit einer fetten Pfeilfunktion zurück, ohne es neu zu binden?
getInitialState: function() {
return {
text: this.props.text
}
}
Aber ich will Fett arrowify es:
getInitialState:() => {
text: this.props.text
}
außer ich eine Fehlermeldung erhalten, weil ein {
nach einem fetten Pfeil Mittel ein Block von Code, der nicht definiert zurückgibt (außer Sie explizit return
etwas). Zumindest dachte ich das zuerst. Aber ich denke this
wird jetzt an diese fette Pfeilfunktion gebunden und jetzt ist this.props
undefined
. So
Ich versuche dies:
getInitialState:() => new Object({
text: this.props.text
})
Aber ich bekomme den gleichen Fehler, this.props
nicht definiert ist.
Also ich denke, ich habe 2 Probleme, die ich bin neugierig. Erstens, was ist der idiomatische Weg, um ein Objekt von einer einfachen Anweisung Fettpfeilfunktion zurückzugeben? Zweitens, wie gebe ich ein Objekt zurück, das eine Referenz auf das Objekt this
des umgebenden Kontextes hat?
Arrow-Funktionen behalten den Kontext bei, aber wenn Sie 'new' verwenden, wird' this' zurückgesetzt und Sie erhalten einen Fehler. Wenn Sie möchten, dass dies funktioniert, können Sie zu ES5 zurückgehen. Hack 'var self = this' – Rajesh
Es wird als" Pfeilfunktion "bezeichnet, nicht als" fette Pfeilfunktion ". – naomik