ionic3重置根页面的几种方式记录

第一种方式,调用ionic App里面的API:

import { Component } from "@angular/core";
import { App, IonicPage, NavController } from "ionic-angular";

@IonicPage()
@Component({
    selector: "page-user-login",
    templateUrl: "user-login.html"
})
export class UserLoginPage {
    constructor(
        public app: App,
    ) {}

    loginOnSuccess() {

        // 点浏览器返回,会回到上一个页面
        this.app.getRootNav().setRoot("TabsPage");

        // OR
    
        // 点浏览器返回,不会再回到上一个页面
        let newRootNav = <NavController>this.app.getRootNavById("n4");
        newRootNav && newRootNav.setRoot("TabsPage");
        // this.app.getActiveNavs()[0].setRoot(page);
    }
}

还有两种方式,在ionic4中应该也适用:

事件订阅方式,app组件中定义Events事件,需要重置根页面的地方,发布下该事件,直接更新app.component.ts中的rootPage,这种方式没有返回问题。

终极方式,在app.html模板中,直接引用service服务中的成员变量,直接设置rootPage,只要服务中的rootPage变量更新,根页面就会重置。这种方式也没有返回问题,个人更喜欢这种方式:

发布了79 篇原创文章 · 获赞 40 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u013727805/article/details/103291439