2017-05-21 1 views
-1

Ich baue eine Kartenspiel-Score-Management-App mit React, wo ich & Spieler entfernen, sondern auch zu verschiedenen Tabellen zuordnen (eine Tabelle enthält 4 Spieler).Abhängigkeit und Verkettung von Aktionen in Redux

Die Sache ist, ich fange gerade mit Redux an und ich habe Probleme, meinen Speicher zu modellieren und abhängige Handlungen zu handhaben.

Ich dachte, ich sollte Redux's subscribe method verwenden, um nach Spieleränderungen zu lauschen und sie entsprechend zu Tabellen zu erstellen/zuordnen, aber ich bin mir nicht sicher, ob es die richtige Art ist, mit dieser Art von Abhängigkeit umzugehen.

Außerdem habe ich mit der Spieler/Tabellen-Assoziation zu kämpfen: sollte ich eine Reihe von Spielern und eine Reihe von Tabellen haben und dann einen Spieler mit einer Tabellen-ID assoziieren oder die Spieler-IDs einer Tabelle zuordnen?

+2

Verwenden Sie [React Redux] (https://github.com/reactjs/react-redux), um Ihr Geschäft mit Ihren Komponenten zu verbinden. Das manuelle Anrufen von 'subscribe' im Geschäft ist meiner Erfahrung nach sehr selten außerhalb des Bibliothekscodes. –

+0

In der Tat verwende ich React Redux. Denkst du, ich kann die 'componentWillReceiveProps' Lifecyle-Methode verwenden, um meine Tabellen zu aktualisieren, wenn Spieler gewechselt werden? – ClementParis016

Antwort

1

Der empfohlene Ansatz zum Organisieren relationaler Daten in einem Redux-Speicher besteht darin, den Status zu "normalisieren". Siehe die Redux FAQ on relational data und die Structuring Reducers - Normalizing State Shape Dokumentseite.

Und ja, per @Joe Clays Kommentar, sollten Sie in der Regel nicht store.subscribe selbst anrufen, sondern verwenden Sie die React-Redux connect Funktion, Store-Abonnements für Ihre Komponenten zu behandeln.

+0

Der Teil zur Normalisierung der Zustandsform für relationale Daten hat mir wirklich geholfen, ich ging mit der empfohlenen Struktur von 'byId' und' allIds', die ziemlich alle meine relationalen Bedenken lösten. – ClementParis016

Verwandte Themen