如何在 React TypeScript 中使用排序按日期显示最新数据

How can I show the latest data by date using sort in react typescript

我的日期格式是这样的:Mon Mar 07 2022 我想显示最新数据。我试过这种方法,但没有用。

如果我将 new Date() 放入我的代码中,我会收到此错误:var Date: DateConstructor new (value: string | number | Date) => Date (+3 overloads) The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.

 useEffect(() => {
        setIsLoading(true)
        fetch(`http://localhost:5000/dashboard/orders`)
            .then(res => res.json())
            .then(data => {
                const latestData = data.sort((a, b) => b.date - a.date)
// const latestData = data.sort((a, b) => new Date(b.date) -new Date( a.date)) // error
                setOrders(latestData)
            })
            .finally(() => setIsLoading(false))
    }, [])

请尝试这种方式

data.sort(function(a,b){
  return new Date(b.date) - new Date(a.date);
});

这是打字稿错误,排序比较器函数只接受数字。

注意: 没有 getTime 它在 javascript 中工作。

const data = [{
    date: "Mon Mar 07 2022",
  },
  {
    date: "Mon Mar 01 2022",
  },
  {
    date: "Mon Mar 06 2022",
  },
];
const latestData = data.sort(
  (a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()
);
console.log(latestData);