我正在尝试使用 Angular 4 开发一个应用程序。但是我在使用时收到一条错误消息
@Input('inputProducts') products: Product[];
错误是
[tslint] 在“ProductListComponent”类中,指令输入 属性“产品”不应重命名。请考虑 以下使用“@Input() products: string”(无输入重命名)。
该错误没有任何影响,我的应用程序工作正常,但很烦人,无法删除它。代码片段如下:
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Product } from '../product-row/product.model';
@Component({
selector: 'app-product-list',
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
@Input('inputProducts') products: Product[];
@Output() selectedProduct: EventEmitter<Product>;
constructor() {
this.selectedProduct = new EventEmitter();
}
clickedProduct(p: Product): boolean {
this.selectedProduct.emit(p);
return false;
}
ngOnInit() {
}
}
html部分
<app-product-list [inputProducts]="products"></app-product-list>
请指出我正确的方向以消除此错误。
@Input() inputProducts: Product[];
应该可以解决你的问题。
它是样式指南,
no-input-rename
你应该设置为 false 以避免出现此类 tslint 错误的规则。当您使用 Angular CLI 生成项目时,通常将 no-input-rename
设置为 true
。转到 tslint 文件并使其值等于 false
。应该看起来像:"no-input-rename": false
。
products: Product[];
@Input('inputProducts')
set productsFromInput(projects: Project[]) {
this.products = products;
}
在 .eslintrc.json 文件中的 rules 部分添加以下行
"@angular-eslint/no-input-rename": "off"
//就这样
"overrides": [
{
"rules" : {
"@angular-eslint/no-input-rename": "off"
}
}
]
@Input() product!: Product;
应该修复它