在登录页面应用程序将获取UDI
和Token
,如果登录/注册成功,它将传递给MapPage:
if (Token != "-1")
{
this.navCtrl.push(MapPage, {UDI: this.UDI, Token: Token})
this.navCtrl.setRoot(MapPage);
this.navCtrl.popToRoot;
在 popToRoot
触发之前的构造方法中console.log(this.UDI, this.Token);
显示它们的值,但之后它们是未定义的。
this.UDI=this.params.get('UDI');
this.Token=this.params.get('Token');
console.log(this.UDI, this.Token);
正如您在进入 map 页面之前所看到的,它显示了正确的传递值
map.ts:39 2NYIRWI0N8Z6HW2M3HWR XWRU441NHH0B9GSHVC3P
但导航根页面更改后
map.ts:39 undefined undefined
最佳答案
您的键看起来像变量而不是字符串文字。因此您的键和值都是 UDI 和Token 的值。
尝试使用引号。
this.navCtrl.setRoot(MapPage, {'UDI': this.UDI, 'Token': Token})
此外,您还可以使用参数进行 push
操作,然后使用参数进行 setRoot
操作。您的 map 页面被设置为根没有参数。
setRoot函数也需要参数
关于angular - Navparam 传递的数据在 Ionic2 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42670516/