【发布时间】:2022-01-08 05:39:32
【问题描述】:
我正在尝试在我的表标题单击上对一个 json 数组进行排序。我正在尝试关注此网络article。我的函数运行但数组永远不会改变。这是函数:
function setInvoiceSortField(field) {
console.log(field);
let sortedInvoices = this.state.invoiceList;
if (field !== null) {
sortedInvoices.sort((a, b) => {
console.log(`a ${a[field]}`);
console.log(`b ${b[field]}`);
if (a[field] < b[field]) {
return -1;
}
if (a[field] > b[field]) {
return 1;
}
return 0;
});
this.setState({ invoiceList: sortedInvoices });
}
}
如果需要,我可以发布 json 数组和/或整个 .js 文件的示例。 .sort() 是在更改 sortedInvoices 还是返回一个排序数组?非常感谢任何提示或帮助!
更新
我添加了一个 if 来检查它们是否匹配帖子排序并且它们匹配。
function setInvoiceSortField(field) {
console.log(field);
let sortedInvoices = this.state.invoiceList;
if (field !== null) {
sortedInvoices.sort((a, b) => {
console.log(`a ${a[field]}`);
console.log(`b ${b[field]}`);
if (a[field] < b[field]) {
return -1;
}
if (a[field] > b[field]) {
return 1;
}
return 0;
});
if (sortedInvoices === this.state.invoiceList) {
console.log("matched")
}
this.setState({ invoiceList: sortedInvoices });
}
}
【问题讨论】:
-
也许(这是一个猜测)React 看到您在状态更新中的数组与已经存在的数组相同。
标签: javascript arrays reactjs sorting