我在Angular路由中遇到错误

时间:2018-08-16 10:53:41

标签: angular typescript angular-routing

错误提示->

  src / app / app-routing.module.ts(29,14)中的

ERROR:错误TS2322:键入'{   路径:字符串;组件:字符串; } []'无法分配给类型   '路线[]'。输入'{path:string;组件:字符串; }' 不是   可分配给“路线”类型。       属性“组件”的类型不兼容。         不能将“字符串”类型分配给“类型”。

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Routes } from '@angular/router';

import { SliderComponent } from './slider/slider.component';
import { SignupFormComponent } from './signup-form/signup-form.component';

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: []
})
export class AppRoutingModule { }
export const routes: Routes = [

  {path : 'ImgSlider' , component: 'SliderComponent'},
  {path : 'signup'  , component: 'SignupFormComponent'},

];

5 个答案:

答案 0 :(得分:4)

该错误告诉您路线的参数有误,因为它应该是这样

export const routes: Routes = [

 {path : 'ImgSlider' , component: SliderComponent},
 {path : 'signup'  , component: SignupFormComponent},
 ];

这意味着组件名称不应写为字符串。

答案 1 :(得分:0)

请逐步参考此步骤。

https://angular.io/tutorial/toh-pt5

绝对可以。

import { HeroesComponent }      from './heroes/heroes.component';

const routes: Routes = [
  { path: 'heroes', component: HeroesComponent } //here you have marked it as string it should be refer to component name
];

一步一步到@ NgModule.imports数组并使用路由配置它 调用RouterModule.forRoot()

imports: [ RouterModule.forRoot(routes) ],

答案 2 :(得分:0)

删除组件上的单引号 例如:

{path : 'ImgSlider' , component: SliderComponent},

答案 3 :(得分:0)

首先将RouterModule导入为:

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

然后将其添加到@ NgModule.imports数组中,并通过调用RouterModule.forRoot()用路由对其进行配置

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})

并按照我在下面提到的方式删除组件上的单引号:

const routes: Routes = [
  {path: 'ImgSlider', component: SliderComponent}
];

对我有用。

答案 4 :(得分:0)

{path : 'ImgSlider' , component: 'SliderComponent'},
{path : 'signup'  , component: 'SignupFormComponent'},

这是您的代码标签。

根据角度文档,在路由文件的组件中不使用单引号。并且您在注册路径的末尾添加了逗号。如果在注册路径之后声明了其他路径,则以其他方式使用逗号会引发异常。这是正确的方法

{path : 'ImgSlider' , component: SliderComponent},
{path : 'signup'  , component: SignupFormComponent}