J'essaye d'implémenter une action d'annulation dans mon application d'Angular où j'emploie @ngrx/store. Ce que je veux être en mesure de faire est d'envoyer l'action UNDO, puis une fois l'action traitée, les données ont été mises à jour par le réducteur et envoyées dans le magasin, je veux faire quelque chose avec ces données mises à jour.ngrx - comment effectuer une opération une fois qu'une action distribuée a correctement mis à jour le magasin?
Voici comment j'essaie de le faire. Fondamentalement, parce que les enregistrements $ proviennent d'un BehaviorSubject, je vais d'abord obtenir une valeur sur subscribe. Ensuite, j'expédie l'action et j'attends que la mise à jour arrive. Il doit y avoir un meilleur moyen, non?
undoRecords() {
let count = 1;
// The records$ observable comes from the ngrx store
let obs = this.records$.take(2).subscribe(records => {
if(count == 1) {
this.store.dispatch({type: UNDO_RECORDS, payload: undefined}); // this will change the records
count++;
}
else {
this.someService.doSomething(records);
}
});
}
Merci pour la réponse @George. Pour clarifier, j'ai déjà réussi à implémenter la fonctionnalité d'annulation (mais pas avec la bibliothèque que vous avez publiée). Ce que je dis, c'est qu'après que l'action d'annulation soit réussie, je veux faire quelque chose avec les données qui sont le résultat de l'action d'annulation. Des idées là-bas? – Andrew