0

我正在使用 React Data Table Component 来显示表格数据——效果很好!

我有一个 lastLogin 时间的行字段,它作为模型存储在 MongoDB 中,如下所示:

lastLogin: [{
 type: Date,
 required: false,
}],

我的数据表组件如下所示:

    <DataTable
      noHeader
      pagination
      paginationPerPage={15}
      paginationRowsPerPageOptions={paginationRowsPerPageOptions}
      responsive
      columns={columns}
      sortIcon={<ChevronDown />}
      className="react-dataTable"
      data={store.data}
    />

当我尝试立即渲染日期时使用列,它工作正常:

  {
    name: 'Last Login',
    selector: (row) => row.lastLogin,
  },

将导致:

  • 第 1 行:2021-11-17T01:16:55.093Z
  • 第 2 行:(空)

但是,当用时刻格式化时,它似乎正在获取以前的记录结果。

  {
    name: 'Last Login',
    selector: (row) => row.lastLogin,
    format: (row) => moment(row.lastLogin).format('lll'),
  },

将导致:

  • 第 1 行:2021 年 1 月 1 日 12:00 AM
  • 第 2 行:2021 年 11 月 17 日下午 1:15
4

2 回答 2

1

此代码工作正确,其预期结果基于当下的工作方式。

时刻将当前时间作为默认时间进行处理,因此,如果您传递一个日期值,那么您将工作并格式化该值,否则将工作并格式化当前日期。

例如:

var now = moment(undefined).format('lll');
console.log(now)

这将是平等的:

var now2 = moment().format('lll');
console.log(now2)

演示链接

于 2021-11-17T02:54:33.143 回答
1

好的...这个已经解决了...愚蠢的语法错误。

模型上的登录日期设置为数组:

lastLogin: [{
 type: Date,
 required: false,
}],

应该:

lastLogin: {
 type: Date,
 required: false,
},
于 2021-11-18T05:17:09.570 回答