From 369ff1804da7099620903cdcc06db530b4d9a60e Mon Sep 17 00:00:00 2001 From: "KAROS\\81948" Date: Fri, 23 Aug 2024 17:29:24 +0800 Subject: [PATCH 1/3] fix:doesn't scroll when use scrollTo with `top` zero --- docs/examples/scrollY.tsx | 9 +++++++++ src/Table.tsx | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/examples/scrollY.tsx b/docs/examples/scrollY.tsx index 8b30845f5..52622db5f 100644 --- a/docs/examples/scrollY.tsx +++ b/docs/examples/scrollY.tsx @@ -59,6 +59,15 @@ const Test = () => { > Scroll To key 9 + ( // Native scroll const { index, top, key } = config; - if (top) { + // * 考虑top为0的情况 + if (top != null) { scrollBodyRef.current?.scrollTo({ top, }); From 7e88a4dde7204b929efed4c54bd05139349cb3f5 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 23 Aug 2024 17:42:54 +0800 Subject: [PATCH 2/3] Update src/Table.tsx --- src/Table.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Table.tsx b/src/Table.tsx index 49140559a..46051385a 100644 --- a/src/Table.tsx +++ b/src/Table.tsx @@ -333,7 +333,7 @@ function Table( const { index, top, key } = config; // * 考虑top为0的情况 - if (top != null) { + if (top || top === 0) { scrollBodyRef.current?.scrollTo({ top, }); From 07eb5290a95c116fe36571dcfd19038f51b8a43c Mon Sep 17 00:00:00 2001 From: "KAROS\\81948" Date: Fri, 23 Aug 2024 18:29:20 +0800 Subject: [PATCH 3/3] test: add scroll test --- tests/Scroll.spec.jsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/Scroll.spec.jsx b/tests/Scroll.spec.jsx index 122d79664..387e6cd5f 100644 --- a/tests/Scroll.spec.jsx +++ b/tests/Scroll.spec.jsx @@ -135,4 +135,22 @@ describe('Table.Scroll', () => { domSpy.mockRestore(); vi.useRealTimers(); }); + + it('trigger inner scrollTo when set `top` 0 after render', () => { + let isTriggerScroll = false; + spyElementPrototypes(HTMLElement, { + scrollTo: _ => { + isTriggerScroll = true; + }, + }); + + const tRef = React.createRef(); + + const wrapper = mount(createTable({ ref: tRef })); + + tRef.current.scrollTo({ + top: 0, + }); + expect(isTriggerScroll).toEqual(true); + }); });