2017-02-18 7 views
1

Derzeit mit einem Zustand, der immer komplizierter wird und ich frage mich, ob ich es falsch mache, siehe unten für ein Beispiel für eine Reduzierung, die ich benutze.Redux geschachtelten Zustand Design

Ist es besser, dayData zu seinem eigenen Reduzierer zu bewegen, oder macht es keinen Unterschied?

+0

Dies würde meiner Meinung nach einen großen Refactor benötigen. Es gibt keine Möglichkeit, etwas davon in angemessener Zeit zu lesen und zu verstehen. Wenn Sie eine große Menge an Eigenschaften aus dem ursprünglichen Zustand verteilen, ist dies ein gutes Zeichen dafür, dass Sie möglicherweise auch die Struktur der Daten ändern müssen. –

+0

@ BalázsÉdes das habe ich mir gedacht. Ich bin so ein Anfänger, Design zu nennen, so dass jede Hilfe willkommen ist. Grundsätzlich habe ich 'DayData' pro' Abteilung'. Diese 'dayData' hat auch Schlüssel. – NealVDV

+0

Gibt es eine Möglichkeit, Ihre Daten weniger "verschachtelt" zu machen? Handle Entitäten in separaten Sammlungen und referenzieren sie durch IDs oder etwas? Vielleicht [normalizr] (https://www.npmjs.com/package/normalizr) –

Antwort

4

Mein Rat wäre, Ihren Zustand in einen flachen Zustand zu normalisieren.

Sie sollten einen Blick nehmen: https://github.com/paularmstrong/normalizr Und das Video von Dan Abramov auf Eierkopf sehen über die Normalisierung Redux Zustand: https://egghead.io/lessons/javascript-redux-normalizing-api-responses-with-normalizr

Diese Eierkopf Lektion war eine der wichtigsten Dinge, die ich gelernt, wie redux Zustand zu verwalten und ich empfehle dringend, es zu sehen und mehr darüber zu lesen.

Kürzlich veröffentlichte twitter ihre mobile Website mit reagieren und Redux und es gab einen Artikel ihren Staat zu sezieren, die auch eine interessante Lektüre sein könnten: https://medium.com/statuscode/dissecting-twitters-redux-store-d7280b62c6b1#.2e55tu6wb

+0

Wusste nicht, dass er eine Tutorial-Serie hatte! Werde es überprüfen, danke! – NealVDV

1

Ihr Beispiel einer unveränderlichen verschachtelten Datenaktualisierung korrekt ist. Allerdings ist @Canstro auch richtig - das ist ein guter Kandidat für die Normalisierung.

Ich würde Sie ermutigen, durch http://redux.js.org/docs/faq/OrganizingState.html#organizing-state-nested-data und http://redux.js.org/docs/recipes/StructuringReducers.html in der Redux-Dokumentation zu lesen, sowie einige der Artikel in dem Redux Techniques#Normalization Abschnitt meines React/Redux links list.

Verwandte Themen