angular - 使用 router.navigate 导航不适用于 nativescript-tab-navigation 模板

标签 angular typescript nativescript

我的所有路线都已正确设置,没有出现任何错误。当第一个选项卡加载时,我会尝试根据他们是否登录自动导航到第二个选项卡。

tabs-routing.module.ts 文件:

import { NgModule } from "@angular/core";
import { Routes } from "@angular/router";
import { NativeScriptRouterModule } from "nativescript-angular/router";

import { TabsComponent } from "./tabs.component";
import { AccountComponent } from './account/account.component';
import { AuthComponent } from './account/auth/auth.component';
import { AddComponent } from './add/add.component';
import { PantryComponent } from './pantry/pantry.component';

const routes: Routes = [
    { path: "", component: TabsComponent, children: [
      {path: 'pantry', component: PantryComponent},
      {path: 'add', component: AddComponent},
      {path: 'account', component: AccountComponent, children: [
        {path: 'auth', component: AuthComponent}
      ]}
    ]},
];

@NgModule({
    imports: [NativeScriptRouterModule.forChild(routes)],
    exports: [NativeScriptRouterModule]
})
export class TabsRoutingModule { }

pantry.component.ts 文件:

import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
import { NativeScriptRouterModule } from "nativescript-angular/router";

require( "nativescript-localstorage" );

@Component({
    selector: "pantry",
    moduleId: module.id,
    templateUrl: "./pantry.component.html"
})
export class PantryComponent implements OnInit {

    constructor(private router : Router, private realRouter: NativeScriptRouterModule) {
        /* ***********************************************************
        * Use the constructor to inject services.
        *************************************************************/
    }

    ngOnInit(): void {
        /* ***********************************************************
        * Use the "ngOnInit" handler to initialize data for the view.
        *************************************************************/

        var loggedIn = sessionStorage.getItem('loggedIn');
        if(loggedIn == 'true'){
          console.log(loggedIn);
        }
        else{
          console.log(loggedIn);
          this.router.navigate(['/tabs/add']);
        }
    }
}

这什么都不做。为什么它不导航到 AddComponent?

最佳答案

如果你替换 this.router.navigate(['/tabs/add']) 它应该可以工作与 this.router.navigate(['/add'])

关于angular - 使用 router.navigate 导航不适用于 nativescript-tab-navigation 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175314/

相关文章:

angular - Mat-autocomplete - 如何访问选定的选项?

javascript - 安装扩展后找不到模块

javascript - 为什么 Angular 5 Transition 抛出 AppComponent.html :2 ERROR TypeError: Cannot read property 'forEach' of undefined

node.js - 尝试获取 https ://registry. npmjs.com/pacote 时响应超时

ios - Nativescript - ActionBar 错误

angular - 找不到模块 'application-settings'

javascript - 如果浏览器不受支持,则 Angular 重定向到特定页面

angular - 如何从angular4的表单中删除一个formGroup?

node.js - 是否有 webpack 配置来捆绑 webpack 插件?

angular - 如何在 Angular 7 中设置超时 KeyUp