首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic 4在生命周期事件中导航,防止在重新加载时显示页面

Ionic 4在生命周期事件中导航,防止在重新加载时显示页面
EN

Stack Overflow用户
提问于 2018-10-30 12:11:41
回答 1查看 850关注 0票数 0

我有一个页面,应该不会加载,除非用户登录(帐户详细信息)。但是,如果用户转到该直接URL,我更倾向于将他定向到登录页面。目前我正在做这件事:

代码语言:javascript
复制
ionViewWillEnter() { 
  if (notLoggedIn()){
    this.navCtrl.navigateRoot('/tabs/(account:account/login)');
    console.log('No user defined when at registration page, redirecting');
    }
  }

我让控制台登录,但页面没有导航到正确的页面( URL会更改,但会显示旧页面)。

EN

回答 1

Stack Overflow用户

发布于 2018-10-31 07:46:25

一些离子生命周期事件不会在离子4中触发,我认为是因为切换到角度路由而不是离子路由。特别是在NavController文档中,它显示了ionViewCanEnter使用navCtrl.push方法,而不是navCtrl.navigateRoot或向前/向后的新方法(这是我在上面输入之前第一次尝试的方法)。

因此,为了解决这个问题,我使用了正常的角度路由生命周期保护,但坚持使用离子NavController来导航。我创建了一个新的生命周期防护,如下所示:

代码语言:javascript
复制
  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): boolean {

    if (this.userService.isLoggedIn()) { return true; }
    this.navCtrl.navigateRoot('/tabs/(account:account/login)');
    return false;

  }

效果很好。

对于同时学习离子和角度的任何人来说,都是很好的文档here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53057294

复制
相关文章

相似问题

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