Ich habe eine Komponente, wie diese Reagieren Nativ: Access Component Zustand innerhalb einer statischen Funktion
export class A extends Component{
constructor(props){
this.state = {
scene:0
}
}
static changeScene(scene){
this.setState({scene:scene})
}
}
Ich möchte
definierte Änderung Szene rufen von überallA.changeScene(sceneVal)
mit die Szene in A. ändern das Problem ist, ich kann 't access this.setState Ich habe diesen Fehler
Unhandled JS Exception: this.setState is not a function.
Ich bin sicher, dass die A-Komponente bereits montiert ist. Ich kann diesen Fehler umgehen, indem eine globale Variable var self = null;
und innerhalb des Konstruktors self = this
im Konstruktor definieren, aber ich möchte einen besseren Weg, um dieses Problem rosolve
können Sie sicher sein, dass es nur eine einzige Instanz der Komponente 'A' ist? Wenn ja, dann scheint 'this 'einer statischen Variablen zuzuordnen. Wenn nicht, dann müssen Sie die Frage neu überdenken. –
Ich bin mir nicht sicher, ob statische Funktionen 'binden' müssen, um den Kontext zu behalten. Sie könnten es versuchen – jose920405
statische Funktionen haben nie Zugriff auf das 'This' Ihre nicht statischen Funktionen haben Zugriff auf. Denken Sie über nicht-statische Methoden nach, wie jede Instanz es hat, und denken Sie über statische Methoden nach, wie es die Klasse hat. –