2017-02-27 2 views
0

Ich habe zwei Komponenten auf einer Seite, ein Update-Benutzerformular und eine Geschichte von Ereignissen. Sie werden durch zwei Reduzierungen (Benutzer und Ereignisse) dargestellt. Ich möchte die Liste der Ereignisse in der Filiale (durch den Aufruf einer API) einmal aktualisieren, sobald der Benutzer aktualisiert wurde. Die Ereignisse sollten jedoch nur aktualisiert werden, wenn sich die Ereigniskomponente auf der Seite befindet.Ngrx Update Reducer, wenn Komponente auf der Seite ist

Was ist der beste Weg, dies zu erreichen? Die einzige Lösung, die mir gefällt, ist, einen Success-Handler in einem Elternteil der Formular-/Ereigniskomponenten zu haben, der eine Aktion auslöst, die von einem Effekt abgefangen wird, der dann die Liste der Ereignisse aktualisiert. Ich hatte gehofft, dass dies etwas ist, was ich komplett mit Effekten erreichen könnte, aber ich weiß natürlich nicht, ob die Komponente auf der Seite ist und ich brauche auch Zugang zu Routenparametern. Hat jemand bessere Lösungen oder kann ein Problem mit dieser Lösung auftreten?

+0

Verteilen Sie eine Aktion an Ihren Store mit dem 'ngOnInit'-Hook Ihrer Event-Komponente, die in Ihrem Status ein' canUpdate'-Flag setzt. Und wenn die Komponente zerstört ist, setze das 'canUpdate'-Flag erneut auf' false '. – cyrix

Antwort

1

Typischerweise ist die Tatsache, dass die Komponente Ereignisse auf dem Bildschirm angezeigt wird repräsentiert eine Art von Teil der „Business Logik/process“, die wahrscheinlich bereits dargestellt im Geschäft Zustand. Wenn dies nicht der Fall ist, müssen Sie es auf irgendeine Weise hinzufügen und aktualisieren, wenn Ihre Komponente initialisiert (ngOnInit) und zerstört wird (ngOnDestroy).

Sobald es Teil des Geschäfts ist, können Sie es als Teil des Effekts verwenden.

Verwandte Themen