【问题标题】:Ionic3 Lazy-Loading navCtrl.pop alternativeIonic3 Lazy-Loading navCtrl.pop 替代
【发布时间】:2019-09-01 21:09:15
【问题描述】:

我正在为我的应用程序使用 ionic3 的延迟加载。 延迟加载可以很好地登录,因为它会根据需要加载组件,但是当我尝试 LogOut 时问题就来了。 OnLogOut 我尝试像以前在 Ionic 2 中那样使用 navCtrl.pop。

logout() {
  this.afAuth.auth.signOut();
  this.navCtrl.pop();
}

这会导致以下运行时错误:

运行时错误:导航堆栈需要至少一个根页面

我猜由于延迟加载,堆栈上没有底层页面? 我的假设是否正确?

【问题讨论】:

  • 是的,延迟加载一次只使用一个页面(组件)...这是延迟加载,因此您只需像往常一样调用注销页面... this.navCtrl.push('pageName')

标签: ionic-framework ionic3 lazy-loading


【解决方案1】:

试试:

this.navCtrl.setRoot('LoginPage');

如果您使用 navCtrl.push,您最终会在登录页面上获得一个返回按钮。然后使用 setRoot()

【讨论】:

    【解决方案2】:

    延迟加载不维护堆栈,这就是您收到此错误 Runtime Error: Navigation stack needs at least one root page

    的原因

    试试

    logout() {
      this.afAuth.auth.signOut();
      this.navCtrl.push('LoginPage'); //Coming back to Login Page after logging out
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      相关资源
      最近更新 更多