Spero che possa aiutare qualcun altro.
La domanda sopra afferma che il valore del parametro della query è necessario dopo il reindirizzamento della pagina e possiamo supporre che il valore dell'istantanea (l'alternativa non osservabile) sia sufficiente.
Nessuno qui menzionato su snapshot.paramMap.get dalla documentazione ufficiale .
this.route.snapshot.paramMap.get('id')
Quindi prima di inviarlo aggiungi questo nel componente di invio / reindirizzamento:
import { Router } from '@angular/router';
quindi reindirizzare come (documentato qui ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
o semplicemente:
this.router.navigate(['/heroes', heroId ]);
Assicurati di averlo aggiunto nel modulo di routing come documentato qui :
{ path: 'hero/:id', component: HeroDetailComponent }
E infine, nel componente che deve utilizzare la query param
aggiungi importazioni (documentato qui ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
iniettare ActivatedRoute
(la documentazione importa anche switchMap e inietta anche Router ed HeroService - ma sono necessari solo per un'alternativa osservabile - NON sono necessari quando si utilizza un'alternativa di snapshot come nel nostro caso):
constructor(
private route: ActivatedRoute
) {}
NOTA: SE AGGIUNGI IL MODULO DI ROUTING A UN MODULO DI FUNZIONALITÀ (COME INDICATO NELLA DOCUMENTAZIONE) ASSICURATI CHE IN APP.MODULE.ts QUESTO MODULO DI ROUTING venga PRIMA DI AppRoutingModule (o altro file con percorsi di app di livello radice) IN IMPORTAZIONI: []. LE STRADE DELLE FUNZIONALITÀ ALTRE NON SARANNO TROVATE (COME AVREBBERO AVUTO DOPO {percorso: '**', reindirizzare a: '/ non trovato'} e vedresti solo il messaggio non trovato).
@RouteConfig
per questopath
?