当前位置: 首页 > 知识库问答 >
问题:

如何修复重定向调用的错误:“无法读取未定义TypeError的属性‘拆分’”

令狐建修
2023-03-14

我只是得到了重定向代码调用的错误,但我应该用我的代码得到重定向:

  if (!localStorage.getItem('emp_user')) {
        console.log('HELLO THERE');
        this.router.navigate(['create'])
      } 

还有我得到的错误:

核心.js:5847 错误错误:未捕获(在promise中):类型错误:无法读取未定义的类型的属性“拆分”错误:无法读取默认未定义的属性“拆分”在应用重定向.push.的匹配(路由器.js:2718)处的UrlMatcher(路由器.js:530)。/node_modules/@angular/路由器/fesm5/路由器.js.应用重定向.匹配分段再次路由 (路由器.js:2564) 在应用重定向.push../node_modules/@angular/路由器/fesm5/路由器.js.应用重定向.展开分段重复路由 (路由器.js:2515) 在 MapSuber.project (路由器.js:2488) 在地图订阅者.push../node_modules/rxjs/_esm5/内部/运算符/映射.js.map订阅者._下一个 (地图.js:35) 在地图订阅者推送./node_modules/rxjs/_esm5/内部/订阅者.js.订阅者下一个 (订阅者.js:53) 在 Observable._subscribe (订阅到阵列.js:5) 在可观察.push../node_modules/rxjs/_esm5/内部/可观察.js.可观察._try订阅(可观察.js:43)在可观察.push../node_modules/rxjs/_esm5/内部/可观察.js.可观察性订阅(可观察.js:29) 在解决项目(区域.js:852) 在区域.js:809)在区域.js:913 在区域代表.push../node_modules/zone.js/dist/zone.js.ZoneDlergate.invoke任务 (zone.js:423) 在 Object.onInvokeTask (核心.js:24328) 在区域代表.push../node_modules/区域.js/分区/区域.js.区域委派.invoke任务 (区域.js:422) 在区域推送。/node_modules/分区.js/分区/分区.js.分区运行任务 (区域.js:195) 在排水微任务队列

UPD:路线

App.routing

const routes: Routes = [
  {
    path: '',
    redirectTo: 'dashboard',
    pathMatch: 'full',
  }, {
    path: '',
    component: AdminLayoutComponent,
    children: [{
      path: '',
      loadChildren: './layouts/admin-layout/admin-layout.module#AdminLayoutModule'
    },
  ]
  },
  {
    path: '',
    loadChildren: './_user/user.module#UserModule'
  },
  // {path: '**', redirectTo: 'default/error/403', pathMatch: 'full'},
];

@NgModule({
  imports: [
    CommonModule,
    BrowserModule,
    RouterModule.forRoot(routes, {
       useHash: true
    })
  ],
  exports: [
  ],
})
export class AppRoutingModule { }

Admin-layout.routing

import { Routes } from '@angular/router';

import { DashboardComponent } from '../../dashboard/dashboard.component';

export const AdminLayoutRoutes: Routes = [
    { path: 'dashboard',      component: DashboardComponent },
    { component: ConfirmDialog }
];

用户.路由

export const UserRoutes: Routes = [
    {
        path: '',
        component: UserComponent,
        children: [
            {
                path: '',
                redirectTo: 'create',
                pathMatch: 'full'
            },
            {
                path: 'create',
                component: RegistrationComponent
            },
        ]
    }
];

共有2个答案

左丘峰
2023-03-14
TypeError: Cannot read property 'split' of undefined TypeError: Cannot read property 'split' of undefined at defaultUrlMatcher

发生这种情况是因为{组件: ConfirmDialog}AdminLayoutRoutes在defaultUrlMatcher中,它通过拆分route.path.spliter ('/')之类的东西来检查路由器路径,因为未定义的路径会引发错误。

它应该是{path:'path for组件',组件: ConfirmDialog}

梁承恩
2023-03-14

更改此路径

{
   path: '',
   loadChildren: './_user/user.module#UserModule
}

{
   path: 'user',
   loadChildren: './_user/user.module#UserModule
}
 类似资料: