reactjs 使用customBodyRender对多数据表进行自定义排序

mtb9vblg  于 2023-04-11  发布在  React
关注(0)|答案(1)|浏览(139)

我在React TS中使用了Mui-DataTables。
我有一个customBodyRender列,在单元格中显示一个复选框。我还想根据值对数据进行排序。底层数据是布尔值。下面是我正在尝试的代码。它不工作,请帮助我。
我不能使用Mui-DataTables的本地行选择选项,因为我还需要在选择行时使用过滤器和搜索。

const defaultColumns = [
{
  name: "_id",
  label: "ID",
  options: {
    display: false,
    filter: true,
  },
},
{
  name: "selected",
  label: "Selected",
  options: {
    display: true,
    filter: true,
    sort: true,
    customBodyRender: (value, tableMeta, updateValue) => {
      return <Checkbox onChange={(e) => MapSelection(tableMeta, e.target.checked)} checked={value} />;
    },
    sortCompare: (order) => {
      return (obj1, obj2) => {
        console.log(order,obj1,obj2);
        return ((obj1.data === obj1.data)? 0 : obj1.data? -1 : 1) * (order === 'asc' ? 1 : -1);
      };
    }
  },
},
oxf4rvwz

oxf4rvwz1#

您只比较了obj1

return (obj1, obj2) => {
        console.log(order,obj1,obj2);
        return ((obj1.data === obj1.data)? 0 : obj1.data? -1 : 1) * (order === 'asc' ? 1 : -1);
      };
    }

解决方案是

return (obj1, obj2) => {
        console.log(order,obj1,obj2);
        return ((obj1.data === obj2.data)? 0 : obj1.data? -1 : 1) * (order === 'asc' ? 1 : -1);
      };
    }

相关问题