Javascript 无法使用@Input()传递道具
我正在做一个非常基本的角度项目。我想在两个角度分量之间传递道具。在相关HTML文件中直接呈现组件的属性时,组件的属性工作正常。将其传递给另一个组件时,会显示错误 父组件的HTML文件Javascript 无法使用@Input()传递道具,javascript,angular,typescript,Javascript,Angular,Typescript,我正在做一个非常基本的角度项目。我想在两个角度分量之间传递道具。在相关HTML文件中直接呈现组件的属性时,组件的属性工作正常。将其传递给另一个组件时,会显示错误 父组件的HTML文件 <app-todo-item *ngFor="let todo of todos" [todo]="todo"> </app-todo-item> 我得到的错误是: Error: src/app/components/todo-item/todo-i
<app-todo-item *ngFor="let todo of todos" [todo]="todo">
</app-todo-item>
我得到的错误是:
Error: src/app/components/todo-item/todo-item.component.ts:11:12 - error TS2564: Property 'todo' has no initializer and is not definitely assigned in the constructor.
这来自新的Ts编译器。可以通过以下方式修复:
@Input() todo?: Todo;
告诉编译器此属性是可选的。或:
@Input() todo!: Todo;
告诉编译器这个属性将不会被取消分配的是来自新Ts编译器的。可以通过以下方式修复:
@Input() todo?: Todo;
告诉编译器此属性是可选的。或:
@Input() todo!: Todo;
什么告诉编译器这个属性不会被取消分配您不应该使用深度导入,比如从'src/app/models/Todo'导入{Todo}代码>使用like
从'./models/Todo'导入{Todo}
您不应该使用深度导入,比如从'src/app/models/Todo'导入{Todo}代码>使用like从'./models/Todo'导入{Todo}
最好使用todo?
而不是todo代码>由于这是输入,因此也可以取消分配。最好使用todo?
而不是todo代码>作为输入,也可以取消分配。