微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

没有下拉菜单的 Ant 表自定义过滤器复选框

如何解决没有下拉菜单的 Ant 表自定义过滤器复选框

我正在为我的项目使用蚂蚁表,我想在单击标题行内的复选框时过滤记录,当我单击复选框时,应过滤所有零值行而其他行应保留,有什么办法可以做这个? Demo

解决方法

您可以通过定义自定义的 columns title 属性来实现所需的功能,该属性除了列的标题字符串外还呈现受控的 Checkbox 组件。当 Checkbox 为真时,您然后根据所需的过滤条件过滤掉表 data

(顺便说一句,我最初确实尝试通过 onFilterfilterIcon 方法获得相同的功能,但这种方法被证明是不成功的。)

import React,{ useState } from "react";
import ReactDOM from "react-dom";
import { Table,Checkbox } from "antd";
import "./index.scss";

const DifferenceTable = (props) => {
  const [isChecked,setIsChecked] = useState(false);

  const data = [
    {
      date: "2020-06-17",units: 2353.0,amount: 8891206.27,date: 2323,units: 243234,amount: 234234,units_diff: 0,amount_diff: 0
    },{
      date: "2020-06-17",units_diff: 1,amount_diff: 1
    }
  ];

  const processedData = isChecked
    ? data.filter((datum) => datum.units_diff || datum.amount_diff)
    : data;
  const columns = [
    {
      title: "Bank",children: [
        {
          title: "Trxn Date",dataIndex: "date",key: "date",width: 100
        },{
          title: "Sum Units",dataIndex: "units",key: "units",{
          title: "Sum Amounts",dataIndex: "amount",width: 100
        }
      ]
    },{
      title: "CUSTOMER",key: "amount",{
      title: () => (
        <div>
          <span>Difference&nbsp;&nbsp;</span>
          <Checkbox
            checked={isChecked}
            onChange={(e) => {
              setIsChecked(e.target.checked);
            }}
          />
        </div>
      ),dataIndex: "units_diff",key: "units_diff",children: [
        {
          title: "Units",{
          title: "Amounts",dataIndex: "amount_diff",key: "amount_diff",width: 100
        }
      ],align: "center"
    }
  ];

  return (
    <Table
      // rowKey="uid"
      className="table diff_table"
      columns={columns}
      dataSource={processedData}
      pagination={false}
      scroll={{ y: 400,x: 0 }}
    />
  );
};

ReactDOM.render(<DifferenceTable />,document.getElementById("container"));

功能演示可在以下 CodeSandbox link

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?