From 3ba7cb6d320dc505457b8a8de294028bfab6a066 Mon Sep 17 00:00:00 2001 From: echo <1558449520@qq.com> Date: Sun, 21 Apr 2024 17:10:23 +0800 Subject: [PATCH] fix(useVirtualList): get correct offset when itemHeight is fixed (#2279) Co-authored-by: huangcheng --- packages/hooks/src/useVirtualList/__tests__/index.test.ts | 2 ++ packages/hooks/src/useVirtualList/index.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/hooks/src/useVirtualList/__tests__/index.test.ts b/packages/hooks/src/useVirtualList/__tests__/index.test.ts index d8916c602b..86a9bf3b14 100644 --- a/packages/hooks/src/useVirtualList/__tests__/index.test.ts +++ b/packages/hooks/src/useVirtualList/__tests__/index.test.ts @@ -61,6 +61,8 @@ describe('useVirtualList', () => { expect(hook.result.current[0].length).toBe(10); expect(container.scrollTop).toBe(20 * 30); + expect(hook.result.current[0][0].data).toBe(20); + expect(hook.result.current[0][0].index).toBe(20); }); it('test with dynamic height', async () => { diff --git a/packages/hooks/src/useVirtualList/index.ts b/packages/hooks/src/useVirtualList/index.ts index 65e069f6d0..e20f4d7985 100644 --- a/packages/hooks/src/useVirtualList/index.ts +++ b/packages/hooks/src/useVirtualList/index.ts @@ -51,7 +51,7 @@ const useVirtualList = (list: T[], options: Options) => { const getOffset = (scrollTop: number) => { if (isNumber(itemHeightRef.current)) { - return Math.floor(scrollTop / itemHeightRef.current) + 1; + return Math.floor(scrollTop / itemHeightRef.current); } let sum = 0; let offset = 0;