в моем приложении Nativescript с угловым приложением я не могу вернуться на предыдущую страницу, если в стек добавлена еще одна страница.
Итак, я в основном перехожу к моему chat-window
компоненту из моего main-component
в коде, подобном следующему:
this.router.navigate(['/chat-window'], {transition: {name: 'slideLeft'}});
В этот момент моя панель действий показывает кнопку "Назад", которая работает нормально! Это возвращает меня к main-component
Затем я перехожу от панели действий моего chat-window
к chat-history
, например:
<ActionItem [nsRouterLink]="['/chat-history']" pageTransition="slideLeft" icon="res://notification"></ActionItem>
Когда я нажимаю кнопку «Назад», она возвращается к chat-window
, как и ожидалось. И теперь есть еще одна кнопка «Назад», которая должна вести к основному компоненту. Но то, что раньше работало, уже не работает. Я не получаю ошибок, но могу нажимать кнопку «Назад» столько, сколько хочу, она не работает.
Почему невозможно выполнить goBackToPreviousPage два раза подряд, выполняя строку в стеке страниц? Или я делаю это неправильно?
Вот мои маршруты:
const routes: Routes = [
{path: '', redirectTo: '/auth-start', pathMatch: 'full'},
{path: 'auth-start', component: AuthStartComponent},
{ path: "tabview", component: TabviewComponent,
children: [
{path: "home", component: HomeComponent, outlet: 'homeOutlet'},
{path: "chat-rooms", component: ChatRoomsComponent, outlet: 'chatRoomsOutlet'},
{path: "user-list", component: UserListComponent, outlet: 'userListOutlet'},
{path: "profile", component: ProfileComponent, outlet: 'profileOutlet'}
] },
{path: "register", component: RegisterComponent},
{path: "login", component: LoginComponent},
{path: "chat-window", component: ChatWindowComponent},
{path: "chat-history", component: ChatHistoryComponent}
];
Моя кнопка «Назад» на панели действий:
<NavigationButton *ngIf="CanGoBack" text="Back" android.systemIcon="ic_menu_back" (tap)="onGoBack()"></NavigationButton>
связанный код:
constructor(private rExtensions: RouterExtensions) {
}
get CanGoBack() {
return this.rExtensions.canGoBackToPreviousPage();
}
onGoBack() {
this.rExtensions.backToPreviousPage();
}
Надеюсь, кто-нибудь может мне помочь.