2017-11-30 2 views
1

私は私のイオニアアプリで奇妙な問題を抱えています。ログインとログアウト時に、ルートページが変更され、最終的に結果として生じるナビゲーションスタックが変更されます。Ionic 3 NavControllerは、ログアウトとルートページの変更後にナビゲートを拒否します

navigation hierarchy

私が最初にログインしたときには、すべてが完璧に動作します。しかし、HomePageからログアウトして再度LoginPageに切り替えると、そのボタンからLocalLoginPageにアクセスすることはできません。 Clickイベントが登録されていますが、確認しましたが、this.navCtrl.push(LocalLoginPage)は何もしません。

関連LoginPage HTML:

<ion-content padding> 

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

</ion-content> 

関連LoginPageコード:

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(); 
    } 
} 

誰もこれがなぜ起こるかのアイデアを持っていますか?

答えて

1

this.navCtrl.popToRoot();を試してみることができます。

logout() { 
    this.oauthService.logOut(); 
    this.localLogin.user = null; 
    this.navCtrl.setRoot(LoginPage);  
    } 
関連する問題