In meiner Komponente ngOnInit, ich paramMap bin mit wie in den documentation vorgeschlagen, um eine Komponente wiederverwenden, sondern schalt basierend auf dem Benutzer-ID in der Route zur Verfügung gestellt:Winkel Route paramMap switchMap nicht mehr funktioniert nach 404
this.route.paramMap
.switchMap((params: ParamMap) => {
this.errors = false;
this.busy = true;
return this.userService.getUser(params.get('id'));
})
.subscribe((user) => {
this.busy = false;
this.errors = false;
// do something with user object...
}, (error) => {
this.busy = false;
this.errors = true;
if (error.status === 404) {
this.errorMsg = 'User not found';
}
});
Sobald jedoch die Methode userService.getUser() einen 404-Fehler auslöst, beendet .switchMap() den Brennvorgang, wenn sich die Route-Parameter ändern, z. B. zu einer neuen Benutzer-ID. Ich habe versucht, .catch() sowohl in den Dienst als auch in die Komponente zu werfen, aber es scheint keine Wirkung zu haben, und es funktioniert immer noch nach einem 404. Gehe ich das falsch?
Leider ist diese Arbeit für mich nicht. Ich hatte eine console.log-Anweisung in der .SwitchMap-Funktion, die überhaupt nicht mehr feuert. – Drew
Haben Sie stattdessen das NavigationStart-Ereignis versucht? und versuchen Sie die Konsolenprotokollierung, bevor Sie eine Aussage darüber erhalten, ob der Router abgebrochen wird oder ein Fehler aufgetreten ist. hoffe das wird helfen – fastAsTortoise