Ich bin ein React-Neuling, der versucht, React in eine Rails-Site zu integrieren. Ich habe eine CommentForm
-Komponente ganz oben auf der Seite / html und eine Comments
-Komponente am Ende derselben Seite. Derzeit werden beide über die Methode " react_component
" von React-On-Rails gerendert.
Das Problem ist, dass ich nach dem Senden eines Formulars in CommentForm
gerne this.state.comments
in der Comments
-Komponente ändern möchte. Ich bin mit der Idee vertraut, sicherzustellen, dass der Staat in eine gemeinsame Elternkomponente übergeht, aber derzeit haben diese beiden Komponenten kein gemeinsames Elternteil (oder überhaupt Eltern).
Also, mit dem Haftungsausschluss, den ich gelernt habe Reagieren für alle 2 Tage und bin wahrscheinlich sehr verwirrt, was ist Best Practice für die Überwindung dieser Art von Problem? Optionen wie ich sie sehe:
Comment
innerhalb von CommentForm
oder einer freigegebenen Ressource (z. B. window
scope), was aus meinem eingeschränkten Verständnis nicht der React Way Ich vermute, das ist ein häufiges Problem, aber ich bin unsicher, was die allgemeine Weisheit ist, es zu beheben. Irgendwelche Ideen geschätzt.
Die erste Option wäre nur den reaktiven Weg (ohne externe Bibliotheken). Wenn dein Projekt nicht so groß ist, könnte es eine Lösung sein.
Die dritte und vierte Option sind definitiv nicht der richtige Weg.
Für das, was Sie gesagt haben, scheint Redux die einfachste Lösung zu sein.
Die Comments
-Komponente sollte alle Kommentare in Ihrem globalen Speicher zeichnen und die CommentForm
sollte die Kommentare zum Speicher hinzufügen (und wahrscheinlich auch eine AJAX-Anfrage zum Speichern der Serverseite senden).
Dann teilen diese Komponenten das gleiche Provider
und haben Zugriff auf den gleichen Store.
Ich würde vorschlagen, dass Sie Dans Kurs
sehenRedux ist der perfekte Anwendungsfall dafür. Es dauert nicht lange, um es zu implementieren, aber wenn du es noch nie getan hast, brauchst du ein oder zwei Tage, um es in den Griff zu bekommen.
Im Allgemeinen, wenn Ihr Projekt noch mehr wächst, wird es Ihnen viel leichter fallen, einen Staat zu verwalten, als tausend Komponenten mit breiten Zuständen.
Also, wenn du mehr Situationen wie diese haben wirst, oder Situationen, in denen du Requisiten durch mehr als 3 Komponenten zurücklegen musst. Ich würde Redux jetzt implementieren und zukunftssicher sein.
Tags und Links ruby-on-rails reactjs react-redux react-on-rails