在React中渲染字典数组

时间:2019-06-25 11:36:39

标签: reactjs typescript

我想渲染通过字典分组的数组。但是我无法正常工作。

我的代码如下:

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

1 个答案:

答案 0 :(得分:1)

您正在使用类型为string和类型为SomeObject[] value 定义对象。

因此,当您编写this.dict.map时,Typescript编译器的行为就像您正在使用键this.dict访问对象map(与Array不同,Object确实会没有map功能)。

this.dict.map返回值SomeObject[],它是一个数组而不是一个函数=它不是call-able

您可能会发现使用Map更适合您要执行的操作。