In meiner Redux App habe ich eine Reihe von Objekten, die Liste der Tage & Stunden geöffnet Geschäft darstellt, der wie folgt aussieht:Ändern Array von Objekten in Redux Auswuchten Zustand
[{day: 'Monday', from:'10', to:'18'}, {day: 'Tusday', from: '8', to:'16'}, {...}]
ich eine Komponente erstellt haben, enthält eine Liste von Tagen in einer Woche. Wenn auf eine von Tagen Wenn Sie auf einen Versand mit Nutzlast, das ist erfolgt einen Tag darstellt:
{day: 'Monday', from:'10', to:'18'}
ich auf ein leeres Array zu starten, schiebe ich ein dayObject mit dem Array. Wenn ich dasselbe Objekt erneut drücke, bedeutet dies, dass ich es entfernen möchte (deaktivieren Sie es auf der React-Komponente).
Wenn ich öffnende Stunde in einem DayObject ändere, dränge ich es wieder, mit geänderter Öffnungsstunde, also möchte ich altes Objekt entfernen und das neue in Array mit neuer Stunde schieben.
if(_.some(days,
{
day: action.payload.day
}
)) {
// replace current object, how ?
}
if(_.some(days,
{
day: action.payload.day,
from: action.payload.from,
to: action.payload.to
}
)) {
// duplicate, uncheck on UI so remove it
_.remove(days {day: action.payload.day})
} else {
days.push(action.payload)
}
So sieht es aus wie meine Probleme legt bei der Erkennung, ob das Objekt ein Duplikat ist oder es sich um eine modifizierte Version eines dayObject, also sollte ich es ersetzen. Irgendeine Hilfe ?
Danke für eine Antwort. Das bedeutet, dass ich die korrekte Aktion in meiner Komponente ausführen muss. Ich habe versucht, eine Aktion namens MANAGE_DAYS zu haben und innerhalb von 3 Statements, die mit Daten umgehen, aber ich kann es nicht funktionieren lassen, also werde ich versuchen, Ihren Ansatz zu verwenden. –