【问题标题】:dates are not sorted correctly in mui-datatables日期在 mui 数据表中未正确排序
【发布时间】:2020-06-12 21:36:25
【问题描述】:

我有由 momentjs 制作和格式化的日期,例如(“2020 年 2 月 22 日星期六下午 12:55”) 我从 Firestore 中读取它们,当我首先对它们进行降序排序时,它们似乎很好。

forms.sort(function(left, right) {
  return moment.utc(left.timeIn).diff(moment.utc(right.timeIn));
});

然后我做一个console.log来检查那里的所有东西并正确排序。

接下来,我将它们传递给包含 mui 数据表的记录表组件。 此时,问题开始发生。

{
  forms.length > 0 ? (
    <RecordTable forms={forms} />
  ) : (
    <div>
      <h2>No Records</h2>
    </div>
  )
}
  1. 它们不会显示在屏幕上,按最新日期降序排列。

    {
      name: "timeIn",
      label: "Time In",
      options: {
        sortDirection: "desc",
        searchable: false
      }
    },
    

  1. 由于某种原因可能是我的错,即使只有 75 条记录,传递到 mui 数据表的值也有 100 次。我可以通过首先在子组件中执行控制台日志,然后在 mui-datatables 中的一个具有 customBody Render 的列上执行另一个 console.log 来看到这一点。

我真的不确定我在这里做错了什么,因为日期在传递到 mui-datatables 之前已排序,并且从父组件中的控制台日志中,仅打印出 75 条记录,与 mui 中的数百条记录相反-数据表console.logs

【问题讨论】:

  • 当你将一个非标准的字符串传递给 moment.js 而不提供格式时,它使用内置的解析器,所以你不妨只做return new Date(left.timeIn) - new Date(right.timeIn),这样会更有效率。此外,在证明示例数据时,请将其作为文本提供,否则希望提供帮助的人必须先将您的图像转录为代码。对于那些可能希望提供帮助的人来说,这是一个相当大的障碍。

标签: javascript json sorting date mui-datatable


【解决方案1】:

尝试为“YYYY-MM-DD”的日期指定格式

【讨论】:

  • 感谢您的回答,但我已经切换到 React Table。
猜你喜欢
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
相关资源
最近更新 更多