Angular 获取错误,因为无法读取未定义的属性“key”

Angular 获取错误,因为无法读取未定义的属性“key”,angular,typescript,angular8,fabricjs,angular11,Angular,Typescript,Angular8,Fabricjs,Angular11,我的以下代码出现错误 错误 TypeError:无法读取EditorComponent.push.xD4D.EditorComponent.setFillColor editor.component处未定义的属性“key”。ts:634 ts 这是我的HTML代码 <input type="text" class="form-control" [cpPosition]="'right'" [cpPresetColo

我的以下代码出现错误

错误

TypeError:无法读取EditorComponent.push.xD4D.EditorComponent.setFillColor editor.component处未定义的属性“key”。ts:634

ts

这是我的HTML代码

        <input type="text" class="form-control" [cpPosition]="'right'" [cpPresetColors]="customColors" [cpOKButton]="true" [cpAddColorButtonText]="'Speichern'" [cpAddColorButton]="true" [cpOKButtonClass]="'btn btn-light btn-sm'" [cpSaveClickOutside]="false" [(colorPicker)]="props.canvasFill"
           [style.background]="props.canvasFill" [value]="props.canvasFill" (cpPresetColorsChange)="updateColorPresets($event)"
           (colorPickerChange)="setFillColor()"/> 

检查输入数据,如:

setFillColor(swatch: any): void {
  if (!swatch) {
    debugger
  }
请参阅dev工具中的调用堆栈


在某些情况下,函数未定义为参数。您应该定义发生这种情况的原因,并可能编写代码来处理这种情况。

这是因为您没有从HTML代码向方法setFillColor传递任何值

可以将当前值传递为:

(colorPickerChange)="setFillColor($event.target.value)"

在html中,colorPickerChange=setFillColorp。在这种情况下,p是什么?我已经删除了p,我刚刚检查了添加参数。我尝试了如下设置FillColorsWatch:any:void{if!swatch{this.paletes.selected=swatch;this.props.fill=swatch.key;this.setFill;}else if!this.props.canvasImage{console.log'say hi'this.canvas.backgroundColor=this.props.canvasFill;this.canvas.renderAll;}仍然得到相同的错误此代码不应该修复错误,您仍然尝试从undefined的键获取值我更改了我的html像OP一样,但我得到了此错误无法读取EditorComponent\u div\u 50\u Template\u input\u colorPickerChange\u 4\u ListenerThank Naresh的属性“值”在EditorComponent\u div\u 50\u Template\u input\u colorPickerChange\u 4\u listenertry with colorPickerChange=setFillColor$event.currentTarget.valueno仍然是相同的错误我修改了colorPickerChange=setFillColor$event.currentTarget.Values只需在方法中传递$event,并将调试器放入方法定义中,然后检查要获取的值G
(colorPickerChange)="setFillColor($event.target.value)"