何时对路由组件进行初始化?

时间:2019-01-01 23:35:23

标签: javascript angular typescript

我有以下路线:

path: ':id', component: ViewBookPageComponent },

添加后会产生错误:

Error: Cannot read property 'id' of null 

我不会在组件中执行空检查,因为当组件被导航到该属性时,该属性将可用,在这种情况下,身份验证保护还一直在重新路由到login被显示。

这是一个演示演示:

https://stackblitz.com/edit/angular-ngrx-slice-demo-fork-with-id-route?file=src%2Fapp%2Fbooks%2Findex.ts

如果我注释掉该路线,则错误不再出现,因此Angular似乎在将其路由到之前实例化了该组件。

2 个答案:

答案 0 :(得分:0)

以下内容可以解决您的问题吗?

  const routes: Routes = [
    {
       path: 'find',
       component: FindBookPageComponent,
    },
    children:[
      {
          path: 'result',
          component: SearchResultComponent,
       },
       children:[
         {
            path: 'book/:id',
            component: ViewBookPageComponent ,
         }
       ]
    ]

   ]

答案 1 :(得分:0)

AuthGuard没有保护路由。需要在Book模块本身中声明它。参见此question for more details