我收到不兼容的调用签名错误,不知道该怎么做才能使其正常工作。
react状态
this.state = {
categoryState: ...,
categoryItemId
}
类别声明
let category: Cat1[] | Cat2[] | Cat3[] = this.getCategory();
getMethod 返回类别
private getCategory() {
switch (this.state.categoryState) {
case "Cat1": {
return this.props.cat1 as Cat1[];
}
case "EVENT": {
return this.props.cat2 as Cat2[];
}
default: {
return this.props.cat3 as Cat3[];
}
}
}
return-Method (react) 这是错误发生的地方:
<select value={this.state.categoryItemID} onChange={this.handleSomething}>
{(category && category.length > 0) &&
category.map((item: any) => {
return (
<option value={item.id}
key={item.id}>{item.localizations[this.props.currentLanguage].title}</option>
);
})
}
</select>
错误消息:TS2349:无法调用类型缺少调用签名的表达式。类型 '((callbackfn: (value: Cat1, index: number, array: Cat1[]) => U, thisArg?: any) => U[] |...' 没有兼容的调用签名。