【发布时间】: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>
)
}
-
它们不会显示在屏幕上,按最新日期降序排列。
{ name: "timeIn", label: "Time In", options: { sortDirection: "desc", searchable: false } },
- 由于某种原因可能是我的错,即使只有 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