我在Angular应用程序中有以下路由配置:

{
  path: ParentComponent.path,
  component: ParentComponent,
  canActivate: [AuthGuard],
  children: [
    {
      path: '',
      pathMatch: 'full',
      redirectTo: getDefaultChildRoute()
    },
    {
      path: ':mode/:year/:month/:day',
      component: ChildComponent
    }
  ]
}

函数的作用是:返回如下字符串:
export function getDefaultChildRoute(): string {
  const urlArray = ['a', '2019', '02'];
  return urlArray.join('/');
}

问题似乎是redirectTo需要一个字符串,而不是一个要调用的方法(即使它返回一个字符串)。如果我用占位符字符串替换该方法调用,它可以正常工作。
GitHub已经有一个问题:https://github.com/angular/angular/issues/13373
直接在redirectTothrows typescript error'()=>字符串处使用箭头函数不能分配给类型string'。
有什么想法吗?

最佳答案

试试这个:

redirectTo: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
    const urlArray = ['a', '2019', '02'];
    return urlArray.join('/');
}

关于javascript - Angular 2+路由redirectTo作为函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55865516/

10-10 23:48