我有一个带有2个标签和1个细节页面的Ionic 4 App。我在这里遇到的问题是,如果我从Tab2进入细节页面并从那里用ion-back-button
返回它总是将我重定向到Tab1而不是我之前的Tab2。
这是我的例子:
Tab2 Html:这里有一个带有click事件的简单离子项:
<ion-item class="chat-item" (click)='openChat()' >
它调用open Chat函数,其工作方式如下:
openChat() {
this.router.navigateByUrl('/chatdetail/:uid');
}
现在它打开我的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>
但是,当我单击此按钮时,它不仅像在Ionic3中那样“弹出”页面,而是将它指向我的应用程序的根页面,即Tab1。
有没有办法覆盖那个回事件去我之前的页面?
更新:
Ionic团队在Ver:4.3.0上修复了这个问题
旧
你需要像这样使用defaultHref="/Tab2"
:
<ion-back-button defaultHref="/Tab2"></ion-back-button>
在没有历史记录时默认导航回的URL。
https://ionicframework.com/docs/api/back-button
怎么去上一页?
import { Location } from "@angular/common";
constructor(private location: Location) { }
myBackButton(){
this.location.back();
}
你应该导航为
<ion-item class="chat-item" [routerLink]="[/chatdetail, 123]" routerDirection="forward">
routerDirection =“forward”在Tabs页面上堆叠detailPage,您将被导航回右侧标签页
通过使用nav-control,我们可以像以下一样回去
在构造函数中添加public navCtrl:NavController
back(){
let animations:AnimationOptions={
animated: true,
animationDirection: "back"
}
this.navCtrl.back(animations)
}