在登录页面中,应用程序将获得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.ts:39 2NYIRWI0N8Z6HW2M3HWR XWRU441NHH0B9GSHVC3P
但导航根页面更改后
map.ts:39 undefined undefined
答案 0 :(得分:1)
您的键看起来像变量而不是字符串文字。因此,您的键和值都是UDI和令牌的值。
尝试使用引号。
this.navCtrl.setRoot(MapPage, {'UDI': this.UDI, 'Token': Token})
此外,您同时使用params push
,然后使用没有参数的setRoot
。您的地图页面设置为root ,没有参数。
setRoot函数也需要参数
答案 1 :(得分:1)
因为地图页面是主页面而且不应该是后退按钮。
就像@suraj所说,你用参数推送视图,然后以root身份设置同一页面,但没有参数。这不正确。如果您不想显示后退箭头,只需将页面设置为root
即可.scan()