Header: "Votes",
accessor: "Voter",
filterable: false,
Cell: row => <Voter id={row.index} vote={this.filterCount(row.index)} />,
sortMethod: null //sort based on vote prop passed above ^
我希望根据传递给单元格中Voter组件的属性的最高值对表进行排序。除了传递给sortMethod
的任何值之外,它都访问JSON文件中的数据,但是我需要使用从组件中提取的数据。有办法吗?任何帮助都非常感激
答案 0 :(得分:0)
假设您使用的是react-table(已添加为标签),则可以为sort方法提供一个以2个值作为参数的函数:
sortMethod: (a, b) => {
a = (a === null || a === undefined || a === '') ? -Infinity : a;
b = (b === null || b === undefined || b === '') ? -Infinity : b;
a = parseInt(a);
b = parseInt(b);
if (a === b) {
return 0;
}
return a > b ? 1 : -1;
}
sort方法应该像javascript类型使用的常规sort方法一样工作。这是一种非常基本的排序方法,它简单地按整数值进行排序,然后对大于b的b进行排序,并处理所有未定义变量的边沿情况,将其推到底部。
这有点抽象,足以告诉它如何对2个项目进行排序,它将应用于所有行。这些值不必命名为A
和B
,这只是更简单。 A和B都代表2个像元值。 IF 您的单元格值是一个对象,而不是整数,则A和B也是对象,您应该使用要比较的值。例如,如果您的单元格值是ARE对象,并且您要基于表决器ID进行排序,则可以执行以下操作:
return a.voter_id > b.voter_id ? 1 : -1;
代替
return a > b ? 1 : -1;