diff --git a/apps/web/src/pages/products/hooks/useProductList/index.ts b/apps/web/src/pages/products/hooks/useProductList/index.ts index fdc30a8d2..1452a46e5 100644 --- a/apps/web/src/pages/products/hooks/useProductList/index.ts +++ b/apps/web/src/pages/products/hooks/useProductList/index.ts @@ -1,3 +1,4 @@ +import { useMemo } from "react" import { useQuery } from "@tanstack/react-query" import { getProducts, type ProductItem as ApiProductItem } from "@/api/products" import { mapApiProduct } from "../../utils" @@ -21,13 +22,15 @@ export const useProductList = () => { }) // 映射为前端类型,按创建时间倒序排列,防御非数组返回 - const products = (Array.isArray(apiProducts) ? apiProducts : []) - .map(mapApiProduct) - .sort((a, b) => { - if (!a.date || a.date === "—") return 1 - if (!b.date || b.date === "—") return -1 - return new Date(b.date).getTime() - new Date(a.date).getTime() - }) + const products = useMemo( + () => + (Array.isArray(apiProducts) ? apiProducts : []).map(mapApiProduct).sort((a, b) => { + if (!a.date || a.date === "—") return 1 + if (!b.date || b.date === "—") return -1 + return new Date(b.date).getTime() - new Date(a.date).getTime() + }), + [apiProducts], + ) /* 筛选 */ const {