reactjs - 如何在打字稿中表示一个对象列表,其中键是日期,内容是数组?
问题描述
我正在尝试如下,但在 ReactJs 中出现错误。
interface IDose {
name: string;
date: string;
}
interface IVaccine {
[date: string]: IDose[]
}
const [data, setData] = useState<IVaccine[]>([]);
...
<IonGrid>
<IonRow>
{data.map((d, i) => {
return (
<IonCol key={i}>
<IonButton>
{d.date}
<br />
{d.name}
</IonButton>
</IonCol>
);
})}
</IonRow>
</IonGrid>
错误:未捕获的类型错误:data.map 不是函数...
谁能给我任何建议?
解决方案
首先,为您的数组对象创建一个新的对象类。
export class Object {
name: string;
date: string; //or Date
}
然后,创建数据结构
let objectMap : Map<string (date string), Object[]> = new Map<string, Object[];
但是......当密钥已经是日期时,您是否需要额外的日期字段?我觉得您可以简单地使用密钥作为命名字段的日期。
推荐阅读
- machine-learning - 我们实际上在机器学习中研究什么?
- cassandra - 如何使用 datastax 驱动程序创建 Cassandra 连接池
- javascript - 在事件侦听器中设置的参数化函数调用背后是否存在有效目的?
- visual-studio - Visual Studio 2010:将 Microsoft SQL CE 3.5 SP2 添加到 InstallShield 先决条件
- c# - 如何将“AdaptiveActionSet”放入“AdaptiveColumn”?
- sql - 如何从 mongodb 迁移到 sql 数据库
- solidity - 如何测试具有可靠返回值的函数的异常?
- fastapi - FastAPI:修改响应代码,同时保留自动验证
- xml - Oracle 12.2 - 尝试使用 XMLTYPE 列对表进行分区时出现 ORA-14427
- javascript - Node.js:在下载图像之前从请求标头中获取图像文件扩展名