Skip to content

虚拟滚动时,固定列阴影消失 #1116

Open
@hairgc

Description

@hairgc

当开启虚拟滚动时,固定列为按照预期设置阴影效果

原因是虚拟滚动时,触发onInternalScroll事件时传入的currentTarget为virtuallist组件的ref,

table/src/Table.tsx

Lines 441 to 443 in f968c9e

const onInternalScroll = useEvent(
({ currentTarget, scrollLeft }: { currentTarget: HTMLElement; scrollLeft?: number }) => {
const isRTL = direction === 'rtl';

导致内部未正常获取到scrollWidth, clientWidth,拿到的是undefined

table/src/Table.tsx

Lines 457 to 465 in f968c9e

const measureTarget = currentTarget || scrollHeaderRef.current;
if (measureTarget) {
const { scrollWidth, clientWidth } = measureTarget;
// There is no space to scroll
if (scrollWidth === clientWidth) {
setPingedLeft(false);
setPingedRight(false);
return;
}

应当优化scrollWidth, clientWidth获取逻辑,虚拟滚动时可以优先从scrollHeaderRef.current获取

const measureTarget = currentTarget || scrollHeaderRef.current;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions