有没有办法将对象作为导航参数传递?
Is there a way to pass objects as a navigationParam?
gotomsg 和 go2msg 是我在将它们发送到我正在导航的页面之前记录的 2 个对象。
goToMessagePage(itinerary) {
let myItin = this.findMyItinerary(itinerary.id);
console.log('gotomsg', myItin);
console.log('go2Msg', itinerary);
const navigationParam: NavigationExtras = {
queryParams: {
theirItinerary: itinerary,
myItinerary: myItin
}
};
this.router.navigate(['messages'], navigationParam);
}
一旦我导航到 'messages' 页面,我在 [object Object] 中得到了 2 个对象,但是当我尝试访问对象的任何属性时,比如 object.id 我得到 'undefined'.
constructor(public messageService: MessagesService,
private route: ActivatedRoute) {
this.route.queryParams.subscribe(params => {
this.theirItinerary = params['theirItinerary'];
this.myItinerary = params['theirItinerary'];
console.log('Myitinerary message', this.myItinerary.data());
console.log('theirItin message', this.theirItinerary.data());
});
}
有没有办法获取作为导航参数传递的对象的值?
尝试使用 JSON.stringify
goToMessagePage(itinerary) {
let myItin = this.findMyItinerary(itinerary.id);
console.log('gotomsg', myItin);
console.log('go2Msg', itinerary);
const navigationParam: NavigationExtras = {
queryParams: {
theirItinerary: itinerary,
myItinerary: JSON.stringify(myItin),
},
};
this.router.navigate(['messages'], navigationParam);
}
或使用state
goToMessagePage(itinerary) {
let myItin = this.findMyItinerary(itinerary.id);
console.log('gotomsg', myItin);
console.log('go2Msg', itinerary);
const navigationParam: NavigationExtras = {
queryParams: {
theirItinerary: itinerary,
},
state: {
myItinerary: myItin,
},
};
this.router.navigate(['messages'], navigationParam);
}
消息组件:
constructor(
private router: Router,
) {
const navigation = this.router.getCurrentNavigation();
console.log(navigation.extras.state);
}
gotomsg 和 go2msg 是我在将它们发送到我正在导航的页面之前记录的 2 个对象。
goToMessagePage(itinerary) {
let myItin = this.findMyItinerary(itinerary.id);
console.log('gotomsg', myItin);
console.log('go2Msg', itinerary);
const navigationParam: NavigationExtras = {
queryParams: {
theirItinerary: itinerary,
myItinerary: myItin
}
};
this.router.navigate(['messages'], navigationParam);
}
一旦我导航到 'messages' 页面,我在 [object Object] 中得到了 2 个对象,但是当我尝试访问对象的任何属性时,比如 object.id 我得到 'undefined'.
constructor(public messageService: MessagesService,
private route: ActivatedRoute) {
this.route.queryParams.subscribe(params => {
this.theirItinerary = params['theirItinerary'];
this.myItinerary = params['theirItinerary'];
console.log('Myitinerary message', this.myItinerary.data());
console.log('theirItin message', this.theirItinerary.data());
});
}
有没有办法获取作为导航参数传递的对象的值?
尝试使用 JSON.stringify
goToMessagePage(itinerary) {
let myItin = this.findMyItinerary(itinerary.id);
console.log('gotomsg', myItin);
console.log('go2Msg', itinerary);
const navigationParam: NavigationExtras = {
queryParams: {
theirItinerary: itinerary,
myItinerary: JSON.stringify(myItin),
},
};
this.router.navigate(['messages'], navigationParam);
}
或使用state
goToMessagePage(itinerary) {
let myItin = this.findMyItinerary(itinerary.id);
console.log('gotomsg', myItin);
console.log('go2Msg', itinerary);
const navigationParam: NavigationExtras = {
queryParams: {
theirItinerary: itinerary,
},
state: {
myItinerary: myItin,
},
};
this.router.navigate(['messages'], navigationParam);
}
消息组件:
constructor(
private router: Router,
) {
const navigation = this.router.getCurrentNavigation();
console.log(navigation.extras.state);
}