Angular 4路由器链接重定向后不工作

问题描述:

我的Angular 4应用程序中的路由器链接在点击时引发错误。他们一直在努力,直到我实现了一个用户登录组件。当应用程序加载时,它检查用户是否登录。如果不是,则将它们发送到登录组件this.router.navigate(['login'])。一旦用户成功登录,我打电话this.router.navigate([''])和应用程序的其余部分正常显示。然后,当单击该应用程序的主要区域的链接,这个错误被抛出:Angular 4路由器链接重定向后不工作

TypeError: Cannot read property 'component' of undefined 
    at PreActivation.traverseRoutes (router.umd.js:4259) 
    at router.umd.js:4240 
    at Array.forEach (<anonymous>) 
    at PreActivation.traverseChildRoutes (router.umd.js:4239) 
    at PreActivation.traverseRoutes (router.umd.js:4268) 
    at router.umd.js:4240 
    at Array.forEach (<anonymous>) 
    at PreActivation.traverseChildRoutes (router.umd.js:4239) 
    at PreActivation.traverse (router.umd.js:4186) 
    at MapSubscriber.project (router.umd.js:4032) 
    at PreActivation.traverseRoutes (router.umd.js:4259) 
    at router.umd.js:4240 
    at Array.forEach (<anonymous>) 
    at PreActivation.traverseChildRoutes (router.umd.js:4239) 
    at PreActivation.traverseRoutes (router.umd.js:4268) 
    at router.umd.js:4240 
    at Array.forEach (<anonymous>) 
    at PreActivation.traverseChildRoutes (router.umd.js:4239) 
    at PreActivation.traverse (router.umd.js:4186) 
    at MapSubscriber.project (router.umd.js:4032) 
    at resolvePromise (zone.js:770) 
    at resolvePromise (zone.js:741) 
    at zone.js:818 
    at ZoneDelegate.invokeTask (zone.js:424) 
    at Object.onInvokeTask (core.umd.js:4143) 
    at ZoneDelegate.invokeTask (zone.js:423) 
    at Zone.runTask (zone.js:191) 
    at drainMicroTaskQueue (zone.js:584) 
    at HTMLDivElement.ZoneTask.invoke (zone.js:490) 

的联系,如果在登录过程中被关闭(用户直接发送到主屏幕)工作得很好。任何人有任何信息给我?谢谢!

UPDATE:

这里是我的路由器配置:

const routes: Routes = [ 
    { 
     path: 'main', 
     component: MainComponent, 
     children: [ 
      { path: 'source/:source', component: ListComponent } 
     ] 
    }, 
    { path: 'login', component: LoginComponent }, 
    { path: '', redirectTo: 'main/source/My workstation', pathMatch: 'full' }, 
    { path: '**', redirectTo: 'main/source/My workstation', pathMatch: 'full' } 
]; 
+0

请将您的路由配置添加到y我们的问题 –

当然我找到一个解决方案创建一个帖子之后...

我删除了路由器的出口在MainComponent,并将主路由的子配置更改为:

{ 
    path: 'main', 
    children: [ 
     { path: 'source/:source', component: MainComponent } 
    ] 
}, 
...