Ich weiß, dass es ein Anti-Muster ist, um den Status auf componentDidMount
setzen und ein Zustand sollte auf componentWillMount
gesetzt werden, aber angenommen, ich möchte die Länge der Anzahl der li
Tags als ein Zustand festlegen. In diesem Fall kann ich den Status nicht auf componentWillMount
setzen, da die Tags li
während dieser Phase möglicherweise nicht gemountet wurden. Also, was sollte hier die beste Option sein? Ist es in Ordnung, wenn ich den Status auf componentDidMount
einstelle?Setze Zustand auf componentDidMount()
Antwort
Es ist kein Anti-Pattern zum Aufruf setState
in componentDidMount
. In der Tat bietet ReactJS ein Beispiel dafür in their documentation:
in
componentDidMount
Daten abrufen. Wenn die Antwort eintrifft, speichern Sie die Daten im Status und lösen Sie ein Rendering aus, um Ihre Benutzeroberfläche zu aktualisieren.
componentDidMount: function() {
this.serverRequest = $.get(this.props.source, function (result) {
var lastGist = result[0];
this.setState({
username: lastGist.owner.login,
lastGistUrl: lastGist.html_url
});
}.bind(this));
}
'setState' ist in einer Callback-Funktion hier getan - das ist ein bisschen ein [anderes Szenario] (http://jaketrent.com/post/set-state-in-callbacks-in-react/) – Jordan
ich bin nicht Sicher, es ist ein Anti-Pattern. Die [aktuelle Dokumentation] (https://facebook.github.io/react/docs/react-component.html#componentdidmount) erwähnt, dass der Einstellungszustand in 'componentDidMount' das erneute Rendern auslöst, aber es wird nicht erwähnt, dass es schlecht ist trainieren. – worc
@worc diese Antwort beschreibt, dass es kein Anti-Muster ist. – lux
- 1. Setze Zustand mit React Shallow Rendering
- 2. JQuery Promise schlägt auf ComponentDidMount fehl React.JS
- 3. reagieren nativen Daten nicht auf componentDidMount
- 4. Wann wird `componentDidMount` ausgelöst?
- 5. Zugriffsvariable in componentDidMount gemacht
- 6. ReactJS componentDidMount und Fetch-API
- 7. basierend auf Index Zustand
- 8. basierend auf Zustand
- 9. Wie rufen Sie zwei asynch-Methode in ComponentDidMount auf?
- 10. Kann Callback-Funktionen auf SetState in ComponentDidMount nicht aufrufen? - Reagieren
- 11. Ausgabe Zustand innerhalb setInterval in React.js Zugriff
- 12. Setze Seed auf Math.random()
- 13. Reactjs: setState immer versagt und kehrt in componentDidMount undefined
- 14. Rcpp setzte den RNG-Zustand auf einen früheren Zustand
- 15. React Enzyme - Testen Sie `componentDidMount` Async Call
- 16. this.refs nicht mehr in componentDidMount verfügbar?
- 17. Get-Status von ComponentDidMount schlägt fehl in React Native
- 18. Klasse nach componentDidMount in reactJS hinzufügen
- 19. Seltsame Zustand Docker auf Windows
- 20. Android Zustand auf Orientierungsänderung speichern
- 21. Schwieriger Zustand auf Java Specification
- 22. WifiP2pManager BUSY-Zustand auf Create
- 23. -Datensatz erstellen, basierend auf Zustand
- 24. Hover Zustand auf animierte Elemente
- 25. Zustand verwenden GLSurfaceView auf Android
- 26. Rust Spiel auf Nummer Zustand
- 27. SQL Multiple Zustand auf Einfeld
- 28. Where-Klausel Zustand auf Aggregatfunktionen
- 29. Beibehaltung Seitenumbruch Zustand auf FnDraw()
- 30. RPi.GPIO pins - überprüfen Zustand
Sie machen Sie die 'li' Tags auf einigen Requisiten basieren (oder Daten)? Könnten Sie einfach 'data.length' verwenden? –
einfach einfach ausgedrückt. sag ich habe 4 'li' Tags und ich möchte die Anzahl von ihnen bekommen, so dass mein' maxNumber' Zustand sollte 4. aber ich render die 'li' Tags basierend auf einigen Requisiten (oder Daten). –
Verwenden Sie dann die Daten von Requisiten in 'getInitialState()', um das Maximum zu berechnen, und geben Sie es dort ein. Es scheint nicht notwendig zu sein, auf die Montage der Komponente zu warten. – wintvelt