Javascript Can';Gatsby站点Ant设计表中的t排序列
我在盖茨比网站上实现了一个Ant设计表。我正在从graphql中提取数据。到目前为止,一切都很顺利。数据显示正确,分页工作正常等 现在我想添加对列进行排序的功能。为此,我设置了如下表和列:Javascript Can';Gatsby站点Ant设计表中的t排序列,javascript,reactjs,graphql,gatsby,antd,Javascript,Reactjs,Graphql,Gatsby,Antd,我在盖茨比网站上实现了一个Ant设计表。我正在从graphql中提取数据。到目前为止,一切都很顺利。数据显示正确,分页工作正常等 现在我想添加对列进行排序的功能。为此,我设置了如下表和列: <Table dataSource={data.allNewsFeed.edges} onChange={onChange} rowSelection={rowSelection} rowKey="id" > <Column title="Title" d
<Table
dataSource={data.allNewsFeed.edges}
onChange={onChange}
rowSelection={rowSelection}
rowKey="id"
>
<Column
title="Title"
dataIndex="node.title"
key="title"
sorter={(a, b) => a.node.title - b.node.title}
sortDirections={["descend", "ascend"]}
/>
</Table>
a、 node.title-b.node.title}
sortDirections={[“下降”,“上升”]}
/>
现在,用于对列进行排序的图标确实出现了,但当我单击它时,什么也没有发生
如果我从sorter函数中删除.node
:sorter={(a,b)=>a.title-b.title}
,也会发生同样的情况
所以,我被困住了——知道这为什么不起作用,以及如何修复它吗
谢谢。我想你可以用a.node.title-b.node.title来代替
a.node.title进行正确的排序。如文件所述:
localeCompare()方法返回一个数字,指示引用字符串是在给定字符串之前还是之后,或者与给定字符串的排序顺序相同
不知何故:
const value=['random','something','else','text'];
常量结果=值。排序((a,b)=>{
返回a.localeCompare(b);
});
控制台日志(结果)代码>正确,此处为通用分拣机(用于数字和字符串),仅供参考:
谢谢-非常感谢。我需要用丹尼斯·瓦什的答案来让它真正起作用,但正如他所说的,他的答案是基于你的。没有问题,很乐意帮忙!这回答了你的问题吗?
const sorter = (a, b) => (isNaN(a) && isNaN(b) ? (a || '').localeCompare(b || '') : a - b);
// Usage example with antd table column
[
{
title: 'Status',
dataIndex: 'status',
key: 'status',
width: '10%',
// status can be Number or String
sorter: (a, b) => sorter(a.status, b.status),
render: Name
}
]