Ant Design 表格 - 按日期范围过滤
创始人
2024-11-07 04:30:18
0

以下是一个使用Ant Design表格组件实现按日期范围过滤的示例代码:

import React, { useState } from 'react';
import { Table, DatePicker, Button } from 'antd';
import moment from 'moment';

const { RangePicker } = DatePicker;

const dataSource = [
  {
    key: '1',
    name: 'John',
    date: '2021-01-01',
  },
  {
    key: '2',
    name: 'Mike',
    date: '2021-02-15',
  },
  {
    key: '3',
    name: 'Tom',
    date: '2021-03-20',
  },
];

const columns = [
  {
    title: 'Name',
    dataIndex: 'name',
    key: 'name',
  },
  {
    title: 'Date',
    dataIndex: 'date',
    key: 'date',
  },
];

const FilterableTable = () => {
  const [filteredDataSource, setFilteredDataSource] = useState(dataSource);
  const [selectedDateRange, setSelectedDateRange] = useState([]);

  const handleDateRangeChange = (dates) => {
    setSelectedDateRange(dates);
    filterDataSource(dates);
  };

  const filterDataSource = (dates) => {
    const filteredData = dataSource.filter((row) => {
      const rowDate = moment(row.date);
      return rowDate.isBetween(dates[0], dates[1], 'day', '[]');
    });
    setFilteredDataSource(filteredData);
  };

  return (
    
); }; export default FilterableTable;

在上述代码中,我们使用了Ant Design的RangePicker组件来选择日期范围,并通过onChange事件监听日期范围的变化。然后,我们根据选择的日期范围过滤数据源,并将过滤后的数据传递给表格组件进行展示。

filterDataSource函数使用moment库来将字符串日期转换为可比较的日期对象,并使用isBetween方法来判断日期是否在选择的范围内。最后,我们使用setFilteredDataSource来更新过滤后的数据源,从而更新表格的展示内容。

在组件中,我们使用了useState来定义filteredDataSourceselectedDateRange的状态,并在handleDateRangeChange函数中更新状态和调用filterDataSource函数进行过滤。另外,我们还添加了一个“Clear Filter”按钮,点击后可以清除选择的日期范围并重置过滤。

相关内容

热门资讯

七分钟辅助!丽水茶苑苹果手机辅... 七分钟辅助!丽水茶苑苹果手机辅助,本来是真的有辅助教程(有挂方式)1、实时丽水茶苑苹果手机辅助透视辅...
第一分钟辅助!闲来辅助神器下载... 第一分钟辅助!闲来辅助神器下载2022,好像真的有辅助方法(有挂教程)1、不需要AI权限,帮助你快速...
九分钟辅助!丽水都莱辅助工具试... 九分钟辅助!丽水都莱辅助工具试用,确实存在有辅助神器(有挂方法)九分钟辅助!丽水都莱辅助工具试用,确...
第一分钟辅助!蛮王辅助器,好像... 第一分钟辅助!蛮王辅助器,好像是有辅助方法(有挂教学)1、首先打开蛮王辅助器辅助器下载最新版本,在蛮...
第六分钟辅助!潮汕汇挂,一贯真... 第六分钟辅助!潮汕汇挂,一贯真的是有辅助插件(有挂辅助)1、这是跨平台的潮汕汇挂轻量版有透视,在线的...
六分钟辅助!微信开心泉州辅助器... 六分钟辅助!微信开心泉州辅助器,一直有辅助器(有挂教学)1、下载好微信开心泉州辅助器透视辅助下载之后...
第3分钟辅助!佛手十三道破解版... 第3分钟辅助!佛手十三道破解版安卓,竟然真的有辅助攻略(有挂存在)1、让任何用户在无需佛手十三道破解...
2分钟辅助!sohoo竞技联盟... 2分钟辅助!sohoo竞技联盟辅助,切实真的有辅助脚本(有挂技术)1.sohoo竞技联盟辅助 选牌创...
第8分钟辅助!心悦手游辅助器,... 第8分钟辅助!心悦手游辅助器,原来真的是有辅助技巧(确实有挂);1、每一步都需要思考,不同水平的挑战...
第十分钟辅助!广东雀神祈福真的... 第十分钟辅助!广东雀神祈福真的有用吗,都是是有辅助技巧(有挂方略)1、下载好广东雀神祈福真的有用吗透...