【问题标题】:Timestamp field from firestore showing an invalid date if the field does not exist如果该字段不存在,则来自 Firestore 的时间戳字段显示无效日期
【发布时间】:2022-01-21 19:07:06
【问题描述】:

这些是我的代码。 selectedDate 是时间戳字段:

<ListItemText
                          primary={
                            new Date(
                              user.items?.selectedDate?.seconds * 1000
                            ).toDateString() +
                            " at " +
                            new Date(
                              user.items?.selectedDate?.seconds * 1000
                            ).toLocaleTimeString()
                          }
                    />

它确实正确显示了数据。但是,如果selectedDate 确实存在,它将显示:

无效日期的无效日期

我该如何解决这个问题?

【问题讨论】:

  • 也许您应该编写一些代码来检查该数据不可用的情况并决定要显示的内容?

标签: javascript reactjs firebase google-cloud-firestore


【解决方案1】:

正如 Doug 所评论的,在尝试将其值转换为日期之前,您需要检查文档是否具有 `` 字段。像这样的东西应该可以解决问题:

<ListItemText
  primary={user.items?.selectedDate ? (
    new Date(
      user.items?.selectedDate?.seconds * 1000
    ).toDateString() +
    " at " +
    new Date(
      user.items?.selectedDate?.seconds * 1000
    ).toLocaleTimeString()
  ) : "No date" }
/>

【讨论】:

    猜你喜欢
    • 2019-09-23
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2018-06-08
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多