单击 后,将调用以下功能。这适用于Firefox,但不适用于Chrome。
handleSort(event) {
let id = event.target.id;
this.setState(prev => {
console.log(prev);
return {
[id]: !prev[id],
books: prev.books.sort((a, b) =>
prev[id] ? a[id] < b[id] : a[id] > b[id]
)
};
});
}
答案 0 :(得分:1)
您实现比较器的方式适用于Firefox,因为(也许)Firefox引擎假定布尔值true
和false
分别为1
和-1
。 Chrome的实现似乎更为敏感,因为它明确希望您从排序比较器返回-1
,0
或1
中的一个。
您可能想更改sort()
内部的比较,以使其在所有浏览器上均可使用。