You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React开发:Material-Table自定义排序如何获取排序顺序,让null日期始终后置

Material-Table 日期排序:让Null值始终排在最后

Material-Table 的 customSort 函数支持第三个参数 sortDirection,它会传入当前的排序方向(asc 或 desc),你可以利用这个参数实现需求:

customSort: (a, b, sortDirection) => {
  // 优先处理null值,确保null始终排在最后
  if (a.paymentDate === null && b.paymentDate !== null) {
    return 1;
  }
  if (a.paymentDate !== null && b.paymentDate === null) {
    return -1;
  }
  // 非null日期根据排序方向比较
  const dateA = new Date(a.paymentDate);
  const dateB = new Date(b.paymentDate);
  return sortDirection === 'asc' ? dateA - dateB : dateB - dateA;
}

逻辑说明:

  • 先判断null情况:只要其中一项的paymentDate为null,就把该项往后排,这部分逻辑和排序方向无关,保证null始终在末尾。
  • 当两个日期都不为null时,根据传入的sortDirection决定升序或降序的比较方式。
  • 注意:如果paymentDate是字符串格式,务必先转为Date对象再比较,避免字符串直接相减导致错误。

内容的提问来源于stack exchange,提问作者sruthi_ys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:35:11