@input 元素失败的默认测试用例问题

Issue with @input element failing default test case

相对较新的测试框架,面临以下问题,我 运行 'npm run test' 在新创建的 spec.ts 文件上没有添加额外的测试用例

我遇到的问题是 map function used upon @input element is undefined

spec.ts

beforeEach(() => {
    fixture = TestBed.createComponent(InputComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
    component.ngOnInit();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });

InputComponent.ts

@Input() set column(colData: Columns[]) {
    this.columns = colData;
  }

ngOnInit(){
this.colName = this.columns.map(col => col.name);
}

TypeError: 无法读取未定义的 属性 'map'

你只需要输入变量的初始值并确保它是数组。因为 map 是一个 属性 数组。

InputComponent.ts

columns = []; <-- initial value;

@Input() set column(colData: Columns[]) {
    this.columns = colData;
  }

ngOnInit(){
this.colName = this.columns.map(col => col.name); <-- You haven't declared the initial value of the "this.columns"
}