Hi,
Es wird aber immer nur der letzte Wert gerendert. Warum sieht man nicht, wie sich der Wert alle 3 Sekunden ändert?
Weil er sich nicht alle 3 Sekunden ändert.
Methode (von <App />
handleSpeak = () => { for (let x = 0; x < 3; x++) { console.log('speak sentence: ', this.state.sentences[x]); setTimeout(this.setState({text: this.state.sentences[x]}), 3000); } }
hier werden in sehr kurzem Abstand (so lange, wie der JS-Interpreter braucht, um den nächsten Schleifendurchlauf abzuarbeiten, also irgendwas im Bereich von Milli- oder noch kleineren Sekunden) drei Timeouts für "in 3 Sekunden" erzeugt. Diese laufen dann auch nach 3 Sekunden in sehr kurzem Abstand ab.
Du könntest: den 2. Timeout nach 6 Sekunden, den 3. nach 9 Sekunden ablaufen lassen.
Oder den 2. Timeout erst dann setzen, wenn der 1. abgelaufen ist, den 3., wenn der 2. abgelaufen ist.
Oder …
cu,
Andreas a/k/a MudGuard