Ich benutze Redux-Observable, um als die Middleware zwischen Dispatch-Aktionen und dem Geschäft zu fungieren. Ich versuche, die rxjs sample
Funktion zu verwenden, um dies zu erreichen, aber leider funktioniert es nicht für mich. Hier ist mein Epos:Verwenden von Rxjs-Beispiel innerhalb von Redux-Observable, um andere Aktionen zu hören
export const inviteUserEpic = (action$) => {
return action$.ofType(a.INVITE_USER)
.flatMap(({ body }) => {
return Observable.concat(
Observable.of({ type: authActions.REGISTER_REQ, body }),
Observable.of(push(`/team/${body.teamId}`))
.sample(action$.ofType(authActions.REGISTER_SUCCESS))
);
});
};
Grundsätzlich ist die Idee, dass es mehrere Orte, um einen neuen Benutzer zu registrieren, und in diesem Fall mag ich die Teamseite umgeleitet, nachdem ich erfolgreich die Benutzer registrieren. Ich sehe REGISTER_REQ emittieren, und es wird anschließend REGISTER_SUCCESS ausgeben. Die Umleitungsbeobachtung wird jedoch nie abgetastet.
@Jake Dluhy habe ich vergessen zu erwähnen, dass Sie wahrscheinlich für immer nicht für 'REGISTER_SUCCESS' hören wollen, in diesem Fall sollten Sie eine' .take (1) in ', so dass es nach dem ersten vollendet Spiel. Ich habe meine Antwort entsprechend bearbeitet. – jayphelps
Danke! Eine andere Sache, an die ich dachte, ist, die Umleitung abzubrechen, wenn die Anfrage fehlschlägt. Ich habe '.takeUntil (action $ .ofType (authActions.REGISTER_FAILURE))' hinzugefügt, was zu funktionieren scheint. –
Ja, das ist perfekt. – jayphelps