Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Javascript Can';Gatsby站点Ant设计表中的t排序列_Javascript_Reactjs_Graphql_Gatsby_Antd - Fatal编程技术网

Javascript Can';Gatsby站点Ant设计表中的t排序列

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

我在盖茨比网站上实现了一个Ant设计表。我正在从graphql中提取数据。到目前为止,一切都很顺利。数据显示正确,分页工作正常等

现在我想添加对列进行排序的功能。为此,我设置了如下表和列:

<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
  }
]