离子流行页不起作用



我是Ionic的新手,我很难回到上一页。错误被捕获(在承诺中):导航堆栈至少需要一个根。但是,在登录()中,我将TabSpage推在根上方(登录页)。使用POP(),我想返回登录页。

如果您能提供帮助,我会很高兴。

这是我的代码:

myApp.ts:

export class MyApp {
  rootPage:any = 'LoginPage';
  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
    platform.ready().then(() => {
      statusBar.styleDefault();
      splashScreen.hide();
    });
  }
}

login.ts:

public login() { 
    this.showLoading()
    this.auth.login(this.registerCredentials).subscribe(allowed => {
      if (allowed) {        
        this.nav.push(TabsPage);
      } else {
        this.showError("Email ou mot de passe incorrect");
      }
    },
      error => {
        this.showError(error);
      });
  }

选项卡:

export class TabsPage {
  tab1Root = OrdersPage;
  tab2Root = AboutPage;
  tab3Root = ProfilePage;
  /**
   * @constructor
   */
  constructor(private navCtrl: NavController) {}
}

profile.ts:

    public logout(){
      this.auth.logout().subscribe(logedout => {
          if(logedout){
              this.navCtrl.pop();
          }
      });
  }

谢谢。

问题是您正在尝试从选项卡根页面弹出。在离子选项卡中,每个选项卡都是其自己的导航堆栈的根。您需要使用应用程序navController将LoginPage 设置为root

在profile.ts中,

 import { App } from ionic-angular;

constructor(private app:App){}
public logout(){
  this.auth.logout().subscribe(logedout => {
      if(logedout){
          this.app.getRootNav().setRoot(LoginPage);
      }
  });
}

另外,您需要将tabspage设置为loginPage的root,以避免用户向后按并返回登录页。

 if (allowed) {        
    this.nav.setRoot(TabsPage);//here
  } else {
    this.showError("Email ou mot de passe incorrect");
  }

相关内容

  • 没有找到相关文章

最新更新