Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在Ant Design V2.x表中排序数据?_Reactjs_Antd - Fatal编程技术网

Reactjs 如何在Ant Design V2.x表中排序数据?

Reactjs 如何在Ant Design V2.x表中排序数据?,reactjs,antd,Reactjs,Antd,我正在使用,无法更新到新版本。我继承了代码,我正在努力按照特定列对数据进行排序。它应该排序一次,而不是动态排序 这是我的React组件的return()函数中的内容: <Table size="small" dataSource={this.props.Data} rowKey={(record) => (record.LedgerId * 100 + record.PositionId).toString()} pagination={fa

我正在使用,无法更新到新版本。我继承了代码,我正在努力按照特定列对数据进行排序。它应该排序一次,而不是动态排序

这是我的React组件的
return()
函数中的内容:

<Table size="small"
       dataSource={this.props.Data}
       rowKey={(record) => (record.LedgerId * 100 + record.PositionId).toString()}
       pagination={false}
       showHeader={true}
>
在其他地方

export interface ViewEntry {
    //Id: number,
    LedgerId: number,
    PositionId: number,
    Value: number,
    children: ViewEntry[]
}
相关和不相关的职位

如果要将实际的分拣机添加到各个列中,则需要在列定义的
分拣机
属性中编写分拣函数。如果希望在默认情况下对整个数据集进行排序,可以在将数据源传递到表之前对其进行排序

列排序:

如果需要“默认排序”,只需创建一个函数对表外的数据进行排序

const sortData = (data) => {
   // Call slice to create a new Array and prevent mutating it if it's stored in state
   return data.slice().sort((a, b) => a.myKey - b.myKey);
}

...

<Table size="small"
       dataSource={sortData(this.props.Data)}
       rowKey={(record) => (record.LedgerId * 100 + record.PositionId).toString()}
       pagination={false}
       showHeader={true}
>

const sortData=(数据)=>{
//调用slice来创建一个新数组,并防止它在存储状态时发生变异
返回data.slice().sort((a,b)=>a.myKey-b.myKey);
}
...
(record.LedgerId*100+record.PositionId).toString()}
分页={false}
showHeader={true}
>

如果要将实际的分拣机添加到各个列中,则需要在列定义的
分拣机
属性中编写排序函数。如果希望在默认情况下对整个数据集进行排序,可以在将数据源传递到表之前对其进行排序

列排序:

如果需要“默认排序”,只需创建一个函数对表外的数据进行排序

const sortData = (data) => {
   // Call slice to create a new Array and prevent mutating it if it's stored in state
   return data.slice().sort((a, b) => a.myKey - b.myKey);
}

...

<Table size="small"
       dataSource={sortData(this.props.Data)}
       rowKey={(record) => (record.LedgerId * 100 + record.PositionId).toString()}
       pagination={false}
       showHeader={true}
>

const sortData=(数据)=>{
//调用slice来创建一个新数组,并防止它在存储状态时发生变异
返回data.slice().sort((a,b)=>a.myKey-b.myKey);
}
...
(record.LedgerId*100+record.PositionId).toString()}
分页={false}
showHeader={true}
>

如果您想订购日期,我建议您:

import moment from 'moment';

{
 title: 'Date',
 dataIndex: 'date',
 key: "date",
 sorter: (a, b) => moment(a.date).unix() - moment(b.date).unix()
},

如果您想订购日期,我建议您:

import moment from 'moment';

{
 title: 'Date',
 dataIndex: 'date',
 key: "date",
 sorter: (a, b) => moment(a.date).unix() - moment(b.date).unix()
},

谢谢你的提示,我会试试的。我错过的技巧是对数据进行预排序。是的,我知道没有内置的方法。希望一切顺利!谢谢你的提示,我会试试的。我错过的技巧是对数据进行预排序。是的,我知道没有内置的方法。希望一切顺利!为可由内置JS存档的内容添加MomentJS Date是不必要的,并且会影响整个捆绑包的大小。它向整个供应商文件中添加了一大块内容。为可以在内置JS日期存档的内容添加MomentJS是不必要的,并且会影响整个捆绑包的大小。它向整个供应商文件中添加了一大块内容。