Angular 4路由配置报错:空路由配置无效(数组不可指定)
解决Angular 4空路径路由重定向的配置错误
Hey,我来帮你搞定这个路由报错问题!你遇到的Invalid configuration of route '' : Array cannot be specified错误,本质是你的空路径路由配置里,某个属性被错误地设置成了数组类型,Angular路由完全不接受这种写法。
我先给你贴个正确的空路径重定向配置示例,你可以对照着改:
import { Routes, RouterModule } from '@angular/router'; import { NavbarComponent } from './navbar/navbar.component'; const routes: Routes = [ // 空路径重定向必须放在路由数组最前面,且pathMatch设为'full' { path: '', redirectTo: '/navbar', // 这里是字符串路径,千万别写成数组! pathMatch: 'full' }, { path: 'navbar', component: NavbarComponent // 这里是单个组件类,不能是数组形式 }, // 其他路由配置... ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }
接下来给你梳理几个最容易踩的坑,你可以对着自己的代码排查:
- 坑1:把
component写成数组:比如手滑写成component: [NavbarComponent],这绝对会触发报错——Angular路由的component属性只接受单个组件类型,数组完全不合法。 - 坑2:
redirectTo格式写错:如果你的目标路由带参数,要写成字符串格式(比如redirectTo: '/navbar/123'),别用数组(['navbar', 123]是routerLink的写法,redirectTo不认这个)。 - 坑3:路由项结构混乱:比如不小心在空路径路由里加了不该有的数组属性,或者把
children的位置写错了,也可能触发这个错误。
你对照着检查自己的路由代码,把数组类型的错误配置改掉,应该就能解决这个问题啦!
内容的提问来源于stack exchange,提问作者Nagaraju Tammu
相关产品推荐
相关产品推荐

