You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular编译报错:已用@Input仍无法绑定'isShown',如何解决?

解决Angular中Can't bind to 'isShown' since it isn't a known property of 'tab'报错

以下是几个必查的解决步骤:

  • 确认子组件正确导出并匹配选择器
    检查子组件代码,确保组件类被导出,且selector与父组件中使用的标签完全一致:

    // childComponent.ts
    import { Component, Input } from '@angular/core';
    
    @Component({
      selector: 'tab', // 必须和父组件里的<tab>标签对应
      templateUrl: './child.component.html'
    })
    export class ChildComponent { // 必须导出该类
      @Input() isShown: boolean;
    }
    
  • 在模块中正确声明子组件
    子组件必须注册在所属模块的declarations数组中;若要被其他模块使用,还需添加到exports数组:

    // 子组件所在模块(如AppModule)
    import { NgModule } from '@angular/core';
    import { ChildComponent } from './childComponent.ts';
    import { ParentComponent } from './parentComponent.ts';
    
    @NgModule({
      declarations: [
        ParentComponent,
        ChildComponent // 务必添加此处
      ],
      exports: [ChildComponent] // 若父组件在其他模块,需导出该组件
    })
    export class AppModule { }
    

    如果父组件属于另一个模块,要确保已导入包含子组件的模块。

  • 检查@Input的导入与使用
    确认已从@angular/core导入Input装饰器,属性装饰语法无误,避免拼写错误或漏写括号:

    import { Input } from '@angular/core'; // 必须导入
    @Input() isShown: boolean; // 语法正确,无拼写错误
    
  • 排查父组件模板的标签拼写
    父组件模板中使用的<tab>标签必须和子组件的selector完全匹配,比如子组件selector是app-tab,则父组件要写<app-tab [isShown]="..."></app-tab>,不能随意简写。

内容的提问来源于stack exchange,提问作者Aisha G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:45:44