【问题标题】:Ionic 3 NavController refuses to navigate after logout and root page changeIonic 3 NavController 在注销和根页面更改后拒绝导航
【发布时间】:2017-11-30 21:54:12
【问题描述】:

我的 Ionic 应用程序有一个奇怪的问题,我有两个不同的逻辑导航堆栈,第一个用于登录,第二个用于登录后使用实际应用程序。在登录和注销时,根页面会更改,最终生成的导航堆栈也会更改。

我第一次登录时,一切正常。但是,当我从 HomePage 注销并再次切换到 LoginPage 时,我无法再通过其按钮访问 LocalLoginPage。点击事件已注册,我已经验证过了,但是this.navCtrl.push(LocalLoginPage) 什么也没做。

相关的登录页面 HTML:

<ion-content padding>

  <button ion-button full (click)="localLogin()">Local login</button>
  <hr/>

</ion-content>

相关登录页面代码:

localLogin() {
  try {
    this.navCtrl.push(LocalLoginPage);
    console.dir(this.navCtrl.getViews()); // this displays only LoginPage when the error occurs
  } catch(e) {
    window.alert(Util.formatError("localLogin error", e));
  }
}

注销按钮(在主页中)代码:

@Component({
  selector: 'logout-button',
  templateUrl: 'logout-button.html'
})
export class LogoutButtonComponent {

  constructor(public navCtrl: NavController, public oauthService: OAuthService,
      public localLogin: LocalLoginProvider) {
  }

  logout() {
    this.oauthService.logOut();
    this.localLogin.user = null;
    this.navCtrl.setRoot(LoginPage);
    this.navCtrl.popToRoot();
  }
}

有人知道为什么会这样吗?

【问题讨论】:

    标签: angular typescript ionic-framework navigation ionic3


    【解决方案1】:

    您可以尝试不使用this.navCtrl.popToRoot();

     logout() {
        this.oauthService.logOut();
        this.localLogin.user = null;
        this.navCtrl.setRoot(LoginPage);    
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      相关资源
      最近更新 更多