首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Navparam传递的数据在Ionic2中不可用

Navparam传递的数据在Ionic2中不可用
EN

Stack Overflow用户
提问于 2017-03-08 19:47:11
回答 2查看 335关注 0票数 2

在登录页面中,应用程序将获得UDIToken,如果登录/注册成功,它将传递给MapPage:

代码语言:javascript
复制
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);显示了它们的值,但在那之后,它们是未定义的。

代码语言:javascript
复制
this.UDI=this.params.get('UDI');
this.Token=this.params.get('Token');    
console.log(this.UDI, this.Token);

更新1:结果

正如您在转到地图页面之前所看到的,它显示了正确传递的值

代码语言:javascript
复制
map.ts:39 2NYIRWI0N8Z6HW2M3HWR XWRU441NHH0B9GSHVC3P

但在更改导航根页面之后

代码语言:javascript
复制
map.ts:39 undefined undefined
EN

回答 2

Stack Overflow用户

发布于 2017-03-08 20:03:20

你的键看起来像变量而不是字符串,你的键和值都是UDI和literals.So的值。

尝试使用引号。

代码语言:javascript
复制
        this.navCtrl.setRoot(MapPage, {'UDI': this.UDI, 'Token': Token})

同样,您可以使用params执行push,然后不使用params执行setRoot。您的地图页面被设置为不带参数的root。setRoot函数也接受参数

票数 1
EN

Stack Overflow用户

发布于 2017-03-09 03:06:19

,因为地图页面是主页,不应该有后退按钮。

就像@suraj所说的,你正在使用参数推送视图,然后设置与root相同的页面,但没有参数。这是不正确的。如果不想显示向后箭头,只需将页面设置为root即可

代码语言:javascript
复制
if (Token != "-1") {                  
    // this.navCtrl. push(MapPage, {UDI: this.UDI, Token: Token}) <- don't do that
    this.navCtrl.setRoot(MapPage, {UDI: this.UDI, Token: Token}); <- send the data like this
    // this.navCtrl.popToRoot; <- don't do that
    // ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42670516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档