Kraft, ein re-render (aktualisieren Sie die Status-und update-DOM) sofort mit react.js
Merke ich, dass der Aufruf setState
nicht aktualisiert this.state
sofort, noch muss Sie sofort anrufen render
und aktualisieren Sie die DOM. Die docs sagen
setState() nicht sofort mutieren.Zustand, sondern schafft eine pending-Zustand übergang. Zugriff auf diese.Zustand nach dem Aufruf dieser Methode kann potenziell Rückkehr der vorhandene Wert.
Es gibt keine Garantie für den synchronen Betrieb von anrufen zu setState und Anrufe können gestapelt werden für Leistungssteigerungen.
Ich würde gerne in der Lage sein zu zwingen, eine "state transition" - wie diese an jedem beliebigen Punkt. Dies scheint, wie es sein sollte ein ziemlich natürlicher Vorgang, aber ich kann nicht finden jede Erwähnung der es in der Dokumentation. Gibt es einen Weg, es zu tun?
setState
.Was versuchen Sie zu tun, dass es diese Anforderung?
InformationsquelleAutor tjhance | 2015-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
forceUpdate
:https://facebook.github.io/react/docs/component-api.html#forceupdate
forceUpdate
tut was ich will (vielleicht tut es, aber entweder Weg, es ist nicht klar.) Ich dachte, der Punkt derforceUpdate
wurde, um das element re-Rendern, auch ohne Einstellung Zustand, aber dieses render könnte noch erhalten Sie in der Warteschlange wie alle machen. Ist das richtig oder falsch?Das ist richtig.
forceUpdate
bewirkt, dass die Komponente für die Darstellung in vDOM Elemente, aber es nicht zwingen, einen flush des vDOM dem eigentlichen DOM (nicht sicher, wie Sie Sie zu erreichen, was Sie wollen)InformationsquelleAutor Colin Ramsay
Können Sie eine
forceUpdate
in Verbindung mit einer Taste auf der top-level-Komponente als so..Durch die Bearbeitung der Schlüssel und zwingen ein update, der dom wird immer rerender.
Hier ist ein Beispiel, dass zeigt den Unterschied zwischen einfach nur eine Kraft, Bearbeiten, und man mit einer Taste ändern*.
https://jsfiddle.net/69z2wepo/82763/
*beachten Sie, dass dies wahrscheinlich ziemlich schlechte Praxis.
Dank Ben Alpert:
https://groups.google.com/forum/#!Thema/reactjs/8JgClU9jol0
InformationsquelleAutor lonewarrior556