2016-06-27 41 views
4

Ich habe eine Variable, die ich in componentDidMount() erstellen, und ich möchte es in componentDidUpdate() verfügbar. Irgendwelche Gedanken? Code sieht so aus:Zugriffsvariable in componentDidMount gemacht

class Example extends Component { 
    componentDidMount() { 
    const myVariable = 'this thing'; 
    } 

    componentDidUpdate() { 
    // I'd like my variable to be accessible here 
    console.log(myVariable); 
    } 

    render() {...} 
} 

Antwort

8

Speichern Sie es in der Komponente dann.

componentDidMount() { 
    this.myVariable = 'this thing'; 
} 

componentDidUpdate() { 
    // I'd like my variable to be accessible here 
    console.log(this.myVariable); 
} 

Auch als @Gosha Arinich es hilfreich darauf hingewiesen - bewusst sein, dass, wenn Sie diese Variable während des gesamten Komponentenlebenszyklus wiederverwenden planen und aktualisieren und/oder machen es - ist es am besten in die platziert state der Komponente (this.state).

+1

Oh mein Gott Ich hatte keine Ahnung, dass du das tun könntest ... Das ist exzellent! Vielen Dank! – jasonetco

+1

@jasonetco Glücklich zu helfen. Stellen Sie sicher, dass Sie die Verwendung von 'this' gelesen haben. Es ist eines der schwierigeren Konzepte in Javascript. Eine gute relevante Frage und mehrere Antworten finden Sie [hier] (http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) –

+1

Denken Sie auch daran, wenn dieser Wert geht während des Komponentenlebenszyklus aktualisiert werden, und wenn es in 'render' verwendet wird, ist es besser, es in den Status zu setzen. –

Verwandte Themen