reactjs - 在 React 中渲染字典的数组
问题描述
我想渲染通过字典分组的数组。但我无法让它工作。
我的代码如下所示:
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
解决方案
您正在定义一个具有type键string
和type值的对象SomeObject[]
。
因此,当您编写 时this.dict.map
,Typescript 编译器就像您使用this.dict
键访问对象一样map
(与 不同Array
,Object
没有map
功能)。
this.dict.map
返回一个值SomeObject[]
,它是一个数组而不是一个函数=它不是call-able
。
您可能会发现使用地图更适合您正在尝试做的事情。
推荐阅读
- java - 在我的汽车类中通过布尔方法比较两个对象
- python - pip install iconsdk:命令“python setup.py egg_info”失败,错误代码为 1
- netsuite - 使用标签的 Netsuite 客户端脚本
- mysql - MySQL 一对多与首选
- sql - GetDate() 返回常量字面错误,如何解决?
- javascript - Ionic 3动态单选按钮formBuilder验证如果全部选中则启用按钮
- node.js - 如何在不使用 npm install 的情况下安装漂白模块?
- javascript - Javascript如何使用递归从对象中打印值
- android - Android 应用已成功在 Google Play 上发布,但无法在 Google Play 商店中搜索
- mysql - MYSQL 数据库 - HUE 连接失败 | 无法使用提供的凭据连接到主机 1 上的数据库