2017-09-25 25 views
0

Typische Situation: Ich bekomme Daten über http und speichern sie in ngrx/speichern. Aber Daten enthalten Zeichenfolgen anstelle von JS Date-Objekt. Wo soll ich sie umwandeln?Wo konvertieren Strings in Datum?

  1. In Dienst this.http(...).map(convert).subscribe(store.dispatch(new AddAction))
  2. In Minderer Speicher case add: convert(payload); return state
  3. Oder in Aktion:

    export class AddMany implements Action { 
        readonly type = addMany 
    
        constructor(public payload: FinishedCall[]) { 
         this.payload = this.convertData(payload) 
        } 
    } 
    

Ich denke, dass ich es in Service tun sollte, aber ich habe Angst vor um sehr groß zu werden Service-Datei

+0

Das liegt an Ihnen und dem Business-Objekt-Design. Wenn Sie es vorziehen, immer mit JS-Datumstypen in Ihrem Typoskript-Code zu arbeiten, konvertieren Sie so früh wie möglich in JS Date und so spät wie möglich von JS Date in String (falls dies auch notwendig ist). Erstellen Sie einige Hilfsmethoden, um die Konvertierung durchzuführen (falls erforderlich) und verwenden Sie sie wieder, wo immer Sie dies implementieren möchten. – Igor

+0

Ich ziehe es vor, so schnell wie möglich zu Datum zu konvertieren – x1site

+0

Ok, also dann kennen Sie die Antwort auf Ihre Frage. – Igor

Antwort

0

Ich schlage vor um die Umwandlungsfunktion innerhalb des Reduzierers zu machen.

Reduzierstücke sollten frei von Nebeneffekten sein. Dies bedeutet, dass sie Dinge nicht außerhalb ihres eigenen Umfangs ändern sollten. Sie sollten einfach den nächsten Anwendungszustand als eine reine Funktion der Argumente des Reduzierers berechnen.

Wir können hier sehen, dass wir in einem Ausgangszustand (die aktuelle Nummer) und eine Aktion übergeben. Um mit jeder Aktion umgehen zu können, wird häufig eine switch-Anweisung verwendet. Anstatt dass jeder Reduzierer explizit den Dispatcher abonnieren muss, wird jede Aktion an jeden Reduzierer übergeben, der die Aktionen bearbeitet, an denen er interessiert ist, und dann den neuen Status an den nächsten Reduzierer zurückgibt.

hoffe es hilft

Verwandte Themen