angular - 在Angular中使用@input将数据从父级传递给子级时出现“类型上不存在属性”错误
问题描述
**Parent component ts**
import { Component, OnInit } from '@angular/core';
import { Recipe } from './recipe.model';
@Component({
selector: 'app-recipe-list',
templateUrl: './recipe-list.component.html',
styleUrls: ['./recipe-list.component.css']
})
recipes: Recipe[] = [
new Recipe('A Test Recipe', 'This is simply a test', 'https://upload.wikimedia.org/wikipedia/commons/1/15/Recipe_logo.jpeg'),
new Recipe('Another Test Recipe', 'This is simply a test', 'https://upload.wikimedia.org/wikipedia/commons/1/15/Recipe_logo.jpeg')
];
**parent component html**
<div class="row">
<div class="col-sm-12">
<app-recipe-item *ngFor="let recipeEl of Recipes"
[RecipesList]="recipeEl"></app-recipe-item>
</div>
</div>
**child-component ts **
import { Component, OnInit, Input } from '@angular/core';
import { Recipe } from '../recipe.model';
@Component({
selector: 'app-recipe-item',
templateUrl: './recipe-item.component.html',
styleUrls: ['./recipe-item.component.css']
})
export class RecipeItemComponent implements OnInit {
@Input() RecipesList: Recipe;
constructor() { }
ngOnInit(): void {
}
}
**child-component -html**
<div class="media border p-3 bg-info rounded">
<div class="media-body">
<h5 class="mt-0 mb-1">{{ recipeEl.name }}</h5>
{{ recipeEl.description }}
</div>
<img src="{{ recipeEl.imagePath }}" class="ml-3 img-responsiv rounded" alt="..." style="max-height: 80px;" />
</div>
当我尝试使用 @input 装饰器将数据从父组件传递到子组件时,出现错误
错误 TS2339:“RecipeItemComponent”类型上不存在属性“recipeEl”。
我该如何解决这个问题?
解决方案
错误 TS2339:“RecipeItemComponent”类型上不存在属性“recipeEl”好吧,它不存在。子组件上的输入和属性被命名为
RecipesList
:
export class RecipeItemComponent implements OnInit {
@Input() RecipesList: Recipe;
顺便说一句,这是一个坏名字,因为它暗示了一个列表,而不是单个项目。最好将输入重命名为,简单地,recipe
并坚持下去:
<app-recipe-item *ngFor="let recipeEl of Recipes" [recipe]="recipeEl"></app-recipe-item>
export class RecipeItemComponent implements OnInit {
@Input() recipe: Recipe;
<div class="media-body">
<h5 class="mt-0 mb-1">{{ recipe.name }}</h5>
{{ recipe.description }}
</div>
推荐阅读
- swift - Swift 3.2 中的 UIControl addTarget(_:action:for:) 方法
- vba - VBA 选项显式无法检测函数中未声明的变量
- javascript - ajax调用后对文本内容排序div
- python - 展开任意数量参数的函数,如果它在每个参数中是线性的
- python - 如何在迭代期间将一个列表中的值分组为多个嵌套列表?
- shell - 如何在本地连接kubernetes集群并打开dashboard?
- java - 我在自动化测试硒中得到 java.lang.NullPointerException
- python - 如何在 Python 中将单个函数导出为模块?
- r - R - 如何用 dplyr 中的变量名称替换变量的值
- javascript - findOneAndUpdate 的验证无权访问“this”值