所以我有一些对表格中的数字进行排序的函数:
sortNumbers1(a,b,order){
if (order === 'desc') {
return Number(b.newScore) - Number(a.newScore);
} else {
return Number(a.newScore) - Number(b.newScore);
}
}
sortNumbers2(a,b,order){
if (order === 'desc') {
return Number(b.oldScore) - Number(a.oldScore);
} else {
return Number(a.oldScore) - Number(b.oldScore);
}
}
<BootstrapTable data={this.props.resData}>
<TableHeaderColumn dataField="oldScore" dataSort={true} sortFunct={this.sortNumbers2}>
Old Score
</TableHeaderColumn>
<TableHeaderColumn dataField="newScore" dataSort={true} sortFunct={this.sortNumbers1}>
New Score
</TableHeaderColumn>
</BootstrapTable>
如您所见,我必须为每个表头定义一个排序函数(因为它们具有不同的dataField),如果我有100个表头怎么办?
我的问题:有没有办法我只能定义一个函数并用于所有表头(例如,使用参数)
我试图使用一个函数并为数据字段传递一个参数,但我不知道如何正确执行。
答案 0 :(得分:0)
您可以像这样定义用于对参数中的数据进行排序的字段:-
sortNumbersByField(a, b, order, field){
if (order === 'desc') {
return Number(b[field]) - Number(a[field]);
} else {
return Number(a[field]) - Number(b[field]);
}
}
<BootstrapTable data={this.props.resData}>
<TableHeaderColumn dataField="oldScore" dataSort={true} sortFunct={this.sortNumbersByField}>
Old Score
</TableHeaderColumn>
<TableHeaderColumn dataField="newScore" dataSort={true} sortFunct={this.sortNumbersByField}>
New Score
</TableHeaderColumn>
</BootstrapTable>
在从 TableHeaderColumn 调用函数 sortNumbersByField 时,您的代码可以定义要对数据进行排序的列/字段。