我想渲染通过字典分组的数组。但是我无法正常工作。
我的代码如下:
var dict: { [key: string] : Array<SomeObject>; };
public render(): React.ReactElement<IProps> {
return (
<Container>
{
this.dict.map((key, idx) =>
<Row className={styles.dateColumn}>
<Col sm={12} className={ styles.column }>
</Col>
</Row>
)
}
</Container>
)
}
但是我收到以下错误消息:
Cannot invoke an expression whose type lacks a call signature. Type 'SomeObject[]' has no compatible call signatures.ts(2349)
我想遍历标题的键,并遍历其数组值以将其呈现在正确的标题之下。
赞:
- Key 1
- Value 1.1
- Value 1.2
- Value 1.3
- Key 2
- Value 2.1
- Value 2.2
- Value 2.3
答案 0 :(得分:1)
您正在使用类型为string
的键和类型为SomeObject[]
的 value 定义对象。
因此,当您编写this.dict.map
时,Typescript编译器的行为就像您正在使用键this.dict
访问对象map
(与Array
不同,Object
确实会没有map
功能)。
this.dict.map
返回值SomeObject[]
,它是一个数组而不是一个函数=它不是call-able
。
您可能会发现使用Map更适合您要执行的操作。