Ionic 4 Angular Back Button到上一页而不是root?

Luk*_* R. 4 routing back-button angular ionic4

我有一个带2个标签和1个详细信息页面的Ionic 4小应用程序。我在这里面临的问题是,如果我从Tab2进入“详细信息页面”,然后从那里ion-back-button返回,它将始终将我重定向到Tab1,而不是以前的Tab2。

这是我的示例:

Tab2 HTML:在这里,我有一个带有点击事件的简单离子项目:

        <ion-item class="chat-item" (click)='openChat()' >
Run Code Online (Sandbox Code Playgroud)

它调用如下的openChat函数:

          openChat() {
            this.router.navigateByUrl('/chatdetail/:uid');
          }
Run Code Online (Sandbox Code Playgroud)

现在,它打开了我的Chatdetail页面,在其中放置了一个后退按钮,可以像这样进行导航:

    <ion-header>
      <ion-toolbar>
          <ion-buttons slot="start">
              <ion-back-button></ion-back-button>
           </ion-buttons>
        <ion-title>chatdetail</ion-title>
      </ion-toolbar>
    </ion-header>
Run Code Online (Sandbox Code Playgroud)

但是,当我单击此按钮时,它不仅像“ Ionic3”中那样“弹出”页面,还可以将我定向到应用程序的根页面,即Tab1。

有什么方法可以覆盖该后退事件以转到之前的页面吗?

Sam*_*ath 9

更新:

Ionic团队已在4.3.0版上修复此问题

您需要这样使用defaultHref="/Tab2"

  <ion-back-button defaultHref="/Tab2"></ion-back-button>
Run Code Online (Sandbox Code Playgroud)

没有历史记录时,默认情况下导航到的URL。

https://ionicframework.com/docs/api/后退按钮

如何转到上一页?

import { Location } from "@angular/common";

constructor(private location: Location) { }

myBackButton(){
  this.location.back();
}
Run Code Online (Sandbox Code Playgroud)