get einzelner Artikel von ngrx / store

Ich habe den folgenden Reduzierer geschrieben, um die Statuselemente in meiner Angular 2-App zu speichern. Die Artikel sind Preisangebote für Finanzinstrumente (z. B. Aktien / Währungen).

Meine Reducer-Implementierung sieht wie folgt aus:

export const offersStore = (state = new Array<Offer>(), action:Action) => {
switch(action.type){

    case "Insert":
        return [
            ...state, action.payload
        ];
    case "Update":
            return state.map(offer => {
                    if(offer.Instrument === action.payload.Instrument)
                    {
                        return Object.assign({}, action.payload);
                    }
                    else return offer;
            });
    case "Delete":
        return state.filter(offer => offer.Instrument !== action.payload )
    default:
        return state;
    }

}

Ich habe es geschafft, Einfügungen, Aktualisierungen und Löschungen zum Funktionieren zu bringen - obwohl es nicht einfach war. Ich finde, Redux ist ein Paradigmenwechsel, der sich von dem unterscheidet, was ich seit Jahren programmiere.

Ich habe eine Instrumentenkomponente / -seite in meiner App - die alle verfügbaren Informationen für ein bestimmtes Instrument anzeigt, angegeben durch die Instrumenten-ID, z. "EUR / USD" (in der Eigenschaft payload.Instrument gespeichert).

Mein Problem ist, dass ich nicht sicher bin, wie ich effizient nach einem bestimmten Instrument suchen und es aus dem Laden holen kann. Nicht nur das, sondern ich möchte auch, dass das Instrument, das ich abrufe, aktualisiert wird, wenn das Instrument im Geschäft aktualisiert wird, da sie häufig über einen Websocket-Push vom Server gesendet werden. Ich muss den Store also wirklich nach einem bestimmten Instrument durchsuchen und es als Observable zurückgeben, damit die View-Komponente basierend auf neuen Daten, die in den Store übertragen werden, weiterhin aktualisiert wird.

Wie kann ich das erreichen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage