В моем проекте Ionic 4 я отправляю параметр с помощью маршрутизатора, но не могу получить параметр на другой странице.
Это мой вкладки.маршрутизатор.модуль.тс:
{
path: 'tab2',
children: [
{
path: '',
loadChildren: '../tab2/tab2.module#Tab2PageModule'
},
{
path: 'eventdetails',
loadChildren: '../eventdetails/eventdetails.module#EventdetailsPageModule'
},
{
path: 'acceptchallenge/:chid',
loadChildren: '../acceptchallenge/acceptchallenge.module#AcceptchallengePageModule'
}
]
},
Это мой tab2.page.ts:
acceptchallenge(challengesobj)
{
console.info('Accept Challenge:', challengesobj);
this.router.navigate(['/tabs/tab2/acceptchallenge/' + challengesobj.id,challengesobj]);
}
В этом ТС я отправляю challengesobj на другую страницу, но не могу его получить.
Это мой accept.page.ts:
export class AcceptchallengePage implements OnInit {
chaobj: any;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
}
async ionViewWillEnter(){
let me=this;
this.route.params.subscribe(params => {
me.chaobj = params['challengesobj'];
});
console.info('challengesobj: ', me.chaobj);
}
}
В этом файле ts, когда я настраиваю значение, оно показывает неопределенное.
Любая помощь горячо приветствуется.
@SachinGupta. Этот параметр challengeobj — это объект, который я отправляю, и он показывает undefined.





Попытайся:
Отправка объекта:
acceptchallenge(challengesobj)
{
let navigationExtras: NavigationExtras = {
queryParams: {
special: JSON.stringify(challengesobj)
}
};
this.router.navigate(['/tabs/tab2/acceptchallenge/' + challengesobj.id,navigationExtras]);
}
Получение объекта:
export class AcceptchallengePage implements OnInit {
chaobj: any;
constructor(private route: ActivatedRoute) {
this.route.queryParams.subscribe(params => {
if (params && params.special) {
this.chaobj = JSON.parse(params.special);
console.info('challengesobj: ', this.chaobj);
}
});
}
ngOnInit() {
}
}
Другой путь:
Отправка объекта:
acceptchallenge(challengesobj)
{
let navigationExtras: NavigationExtras = {
state: {
challengesobj: challengesobj
}
};
this.router.navigate(['/tabs/tab2/acceptchallenge/' + challengesobj.id,navigationExtras]);
}
Получение объекта:
Получение объекта:
export class AcceptchallengePage implements OnInit {
chaobj: any;
constructor(private route: ActivatedRoute) {
this.route.queryParams.subscribe(params => {
if (this.router.getCurrentNavigation().extras.state) {
this.chaobj = this.router.getCurrentNavigation().extras.state.challengesobj;
}
});
}
ngOnInit() {
}
}
Отображение неопределенного. Должен ли я также определять маршруты.
путь: 'acceptchallenge/:chid', я определил идентификатор, поэтому я получаю идентификатор, но не 'challengeobj'
что показывает
params?