gpt4 book ai didi

nativescript - 在 nativesscript 中的路由之间传递参数

转载 作者:行者123 更新时间:2023-12-04 04:06:24 24 4
gpt4 key购买 nike

在 NativeScript 应用程序中,我有如下两条路线:

{ path : "boxes" , component : BoxesPage } ,
{ path : "card" , component : CardPage } ,

在 BoxesPage 中,我试图像这样将一些东西传递给 CardPage :

constructor ( private _routerExtention : RouterExtensions , private _router : Router) {
}

onItemTap ( _box ) {
let navigationExtras : NavigationExtras = {
queryParams : { 'box' : _box } ,
fragment : 'anchor'
};
this._router.navigate( [ '/card' ] , navigationExtras );
}

然后在 CardPage 组件中:

 ngOnInit () : any {
this.route.params.subscribe( ( _box : Box ) => {

console.log( _box ); //undefined or {}

} );
return undefined;
}

问题是:

这是正确的方法吗?

我应该如何在 CardPage 中获取我的框对象?

值得一提的是,我使用的是带有 NativScript 的 Angular2。

我已经尝试了一切,但遗憾的是文档非常糟糕。

提前致谢。

最佳答案

如果你想将一个组件之间的复杂数据(对象)传递给另一个组件,则将对象字符串化,然后将其传递给其他组件以使用对象解析 JSON。

app.component.ts:

public appListComponent(item: any) {

const getData: string = item;

const navigationExtras: NavigationExtras = {
queryParams: {
DataList: JSON.stringify(getData)
}
};
this.routerExtensions.navigate(["app-modal"], navigationExtras);
}

app.modal.component.ts:

 public constructor(public route: ActivatedRoute) {    

this.route.queryParams.subscribe((params) => {

this.getParamData = params["DataList"];

let obj: ModalData = JSON.parse(this.getParamData);
console.log("Name", obj.name);
console.log("Description", obj.description);

});

}

模态数据.ts:

export class ModalData {
name: string;
description: string;
}

关于nativescript - 在 nativesscript 中的路由之间传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39060137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com