首页 > 解决方案 > 如何在打字稿中表示一个对象列表,其中键是日期,内容是数组?

问题描述

我绞尽脑汁在打字稿中表示以下数据集: 在此处输入图像描述

我正在尝试如下,但在 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 不是函数...

谁能给我任何建议?

标签: reactjstypescriptionic4

解决方案


首先,为您的数组对象创建一个新的对象类。

export class Object {
    name: string;
    date: string; //or Date
}

然后,创建数据结构

let objectMap : Map<string (date string), Object[]> = new Map<string, Object[];

但是......当密钥已经是日期时,您是否需要额外的日期字段?我觉得您可以简单地使用密钥作为命名字段的日期。


推荐阅读