Angular中@Input修饰setter属性绑定值提示非已知属性怎么办?
@Input属性绑定失效原因排查
你提供的@Input setter代码写法本身没有语法问题,出现Can't bind to 'currentArticle' since it isn't a known property of 'article-search'报错,通常是以下配置错误导致:
组件未正确注册到当前作用域
- NgModule模式下:
- 确认
ArticleSearchComponent已加入自身所属模块的declarations数组 - 若父组件与子组件分属不同模块,需要在子组件所属模块的
exports数组中导出ArticleSearchComponent,同时在父组件所属模块的imports数组中引入子组件所属模块
- 确认
- 独立组件(Angular 14+)模式下:
- 确认
ArticleSearchComponent的@Component装饰器已标注standalone: true - 确认父组件
@Component装饰器的imports数组中已引入ArticleSearchComponent
- 确认
- NgModule模式下:
Input装饰器导入错误
需在子组件ts文件顶部正确导入Angular官方的Input装饰器,导入语句如下:
若遗漏导入、导入路径错误,或引入了其他第三方包的同名import { Input } from '@angular/core';Input装饰器,都会导致Angular无法识别该属性为合法输入属性。拼写/大小写不匹配
Angular模板绑定是大小写敏感的,需确认子组件中定义的currentArticle属性名,和父组件模板中绑定的[currentArticle]拼写、大小写完全一致,避免出现拼写错误。组件元数据冲突
若你在子组件@Component装饰器的inputs数组中重复声明了currentArticle,或存在同名的输出属性、宿主绑定属性,也可能导致属性识别异常,只需保留@Input()装饰器声明即可,无需在元数据的inputs数组中重复配置。
内容的提问来源于stack exchange,提问作者BennoDual
相关产品推荐
相关产品推荐

