@tarojs/components-advanced 4.1.10 → 4.1.11-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -5,24 +5,23 @@ import StickySection from './StickySection';
|
|
|
5
5
|
export interface ListProps {
|
|
6
6
|
showScrollbar?: boolean;
|
|
7
7
|
scrollTop?: number;
|
|
8
|
+
scrollX?: boolean;
|
|
9
|
+
scrollY?: boolean;
|
|
8
10
|
onScroll?: (e: {
|
|
9
11
|
scrollTop: number;
|
|
10
12
|
scrollLeft: number;
|
|
11
13
|
}) => void;
|
|
12
14
|
onScrollToUpper?: () => void;
|
|
13
15
|
onScrollToLower?: () => void;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
upperThreshold?: number;
|
|
17
|
+
lowerThreshold?: number;
|
|
16
18
|
cacheCount?: number;
|
|
17
19
|
stickyHeader?: boolean;
|
|
18
20
|
space?: number;
|
|
19
|
-
item?: React.ComponentType<any>;
|
|
20
|
-
itemCount?: number;
|
|
21
21
|
itemData?: any[];
|
|
22
22
|
itemSize?: number | ((index: number, data?: any[]) => number);
|
|
23
23
|
height?: number | string;
|
|
24
24
|
width?: number | string;
|
|
25
|
-
layout?: 'vertical' | 'horizontal';
|
|
26
25
|
style?: React.CSSProperties;
|
|
27
26
|
children?: React.ReactNode;
|
|
28
27
|
headerHeight?: number;
|
|
@@ -30,8 +30,8 @@ function isShaking(diffList) {
|
|
|
30
30
|
}
|
|
31
31
|
const List = (props) => {
|
|
32
32
|
const isH5 = process.env.TARO_ENV === 'h5';
|
|
33
|
-
const { stickyHeader = false, space = 0, height = 400, width = '100%', showScrollbar = true, scrollTop: controlledScrollTop, onScroll, onScrollToUpper, onScrollToLower,
|
|
34
|
-
const isHorizontal =
|
|
33
|
+
const { stickyHeader = false, space = 0, height = 400, width = '100%', showScrollbar = true, scrollTop: controlledScrollTop, scrollX = false, scrollY = true, onScroll, onScrollToUpper, onScrollToLower, upperThreshold = 0, lowerThreshold = 0, cacheCount = 2, style, children, } = props;
|
|
34
|
+
const isHorizontal = scrollX === true;
|
|
35
35
|
const DEFAULT_ITEM_WIDTH = 120;
|
|
36
36
|
const DEFAULT_ITEM_HEIGHT = 40;
|
|
37
37
|
// 滚动状态管理
|
|
@@ -153,13 +153,13 @@ const List = (props) => {
|
|
|
153
153
|
}, [renderOffset, containerLength, sectionOffsets, sections.length, cacheCount]);
|
|
154
154
|
// 触顶/触底事件
|
|
155
155
|
React.useEffect(() => {
|
|
156
|
-
if (onScrollToUpper && renderOffset <= (
|
|
156
|
+
if (onScrollToUpper && renderOffset <= (upperThreshold > 0 ? sectionOffsets[upperThreshold] : 0)) {
|
|
157
157
|
onScrollToUpper();
|
|
158
158
|
}
|
|
159
|
-
if (onScrollToLower && renderOffset + containerLength >= sectionOffsets[sectionOffsets.length - 1] - (
|
|
159
|
+
if (onScrollToLower && renderOffset + containerLength >= sectionOffsets[sectionOffsets.length - 1] - (lowerThreshold > 0 ? sectionOffsets[sectionOffsets.length - 1] - sectionOffsets[sections.length - lowerThreshold] : 0)) {
|
|
160
160
|
onScrollToLower();
|
|
161
161
|
}
|
|
162
|
-
}, [renderOffset, containerLength, sectionOffsets, sections.length,
|
|
162
|
+
}, [renderOffset, containerLength, sectionOffsets, sections.length, upperThreshold, lowerThreshold, onScrollToUpper, onScrollToLower]);
|
|
163
163
|
// 处理渲染偏移量更新
|
|
164
164
|
const updateRenderOffset = React.useCallback((newOffset) => {
|
|
165
165
|
lastScrollTopRef.current = newOffset;
|
|
@@ -230,8 +230,8 @@ const List = (props) => {
|
|
|
230
230
|
// 修改ScrollView组件的props,添加data-testid属性
|
|
231
231
|
// ScrollView 属性
|
|
232
232
|
const scrollViewProps = {
|
|
233
|
-
scrollY: !
|
|
234
|
-
scrollX:
|
|
233
|
+
scrollY: !scrollX && scrollY,
|
|
234
|
+
scrollX: scrollX,
|
|
235
235
|
style: containerStyle,
|
|
236
236
|
enhanced: true,
|
|
237
237
|
showScrollbar: showScrollbar,
|
|
@@ -296,7 +296,7 @@ const List = (props) => {
|
|
|
296
296
|
? { top: 0, height: '100%', left: offset, width: headerSize }
|
|
297
297
|
: { top: offset, height: headerSize }));
|
|
298
298
|
nodes.push(React.createElement(View, {
|
|
299
|
-
key: section.key + '-header'
|
|
299
|
+
key: section.key + '-header',
|
|
300
300
|
style: sectionHeaderStyle,
|
|
301
301
|
}, section.header));
|
|
302
302
|
offset += headerSize;
|
|
@@ -335,7 +335,7 @@ const List = (props) => {
|
|
|
335
335
|
marginBottom: space
|
|
336
336
|
}));
|
|
337
337
|
nodes.push(React.createElement(View, {
|
|
338
|
-
key: section.key + '-item-' + i
|
|
338
|
+
key: section.key + '-item-' + i,
|
|
339
339
|
style: sectionItemStyle,
|
|
340
340
|
}, section.items[i]));
|
|
341
341
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/list/index.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport React from 'react'\n\nimport ListItem from './ListItem'\nimport StickyHeader from './StickyHeader'\nimport StickySection from './StickySection'\n\nexport interface ListProps {\n showScrollbar?: boolean\n scrollTop?: number\n onScroll?: (e: { scrollTop: number, scrollLeft: number }) => void\n onScrollToUpper?: () => void\n onScrollToLower?: () => void\n upperThresholdCount?: number\n lowerThresholdCount?: number\n cacheCount?: number\n stickyHeader?: boolean\n space?: number\n item?: React.ComponentType<any>\n itemCount?: number\n itemData?: any[]\n itemSize?: number | ((index: number, data?: any[]) => number)\n height?: number | string\n width?: number | string\n layout?: 'vertical' | 'horizontal'\n style?: React.CSSProperties\n children?: React.ReactNode\n headerHeight?: number // 纵向 header 高度\n headerWidth?: number // 横向 header 宽度\n itemHeight?: number // 纵向 item 高度\n itemWidth?: number // 横向 item 宽度\n}\n\n// 工具:累加数组\nexport function accumulate(arr: number[]) {\n const result = [0]\n for (let i = 0; i < arr.length; i++) {\n result[i + 1] = result[i] + arr[i]\n }\n return result\n}\n\n// 检测抖动\nexport function isShaking(diffList: number[]): boolean {\n if (diffList.length < 3) return false\n\n // 检查是否有连续的正负交替\n const signs = diffList.map(diff => Math.sign(diff))\n let alternations = 0\n for (let i = 1; i < signs.length; i++) {\n if (signs[i] !== 0 && signs[i] !== signs[i - 1]) {\n alternations++\n }\n }\n\n // 如果交替次数过多,认为是抖动\n return alternations >= 2\n}\n\nconst List: React.FC<ListProps> = (props) => {\n const isH5 = process.env.TARO_ENV === 'h5'\n const {\n stickyHeader = false,\n space = 0,\n height = 400,\n width = '100%',\n showScrollbar = true,\n scrollTop: controlledScrollTop,\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n upperThresholdCount = 0,\n lowerThresholdCount = 0,\n cacheCount = 2,\n style,\n children,\n layout = 'vertical'\n } = props\n\n const isHorizontal = layout === 'horizontal'\n const DEFAULT_ITEM_WIDTH = 120\n const DEFAULT_ITEM_HEIGHT = 40\n\n // 滚动状态管理\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n // 渲染偏移量 - 用于计算应该渲染哪些元素\n const [renderOffset, setRenderOffset] = React.useState(controlledScrollTop ?? 0)\n\n // 滚动视图偏移量 - 只在滚动结束或明确请求时更新到ScrollView\n const [scrollViewOffset, setScrollViewOffset] = React.useState(controlledScrollTop ?? 0)\n\n\n const [containerLength] = React.useState<number>(typeof (isHorizontal ? width : height) === 'number' ? (isHorizontal ? (width as number) : (height as number)) : 400)\n\n // 滚动追踪相关refs\n const isScrollingRef = React.useRef(false)\n const lastScrollTopRef = React.useRef(controlledScrollTop ?? 0)\n const scrollDiffListRef = React.useRef<number[]>([0, 0, 0])\n const scrollTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n // 解析分组结构,只支持 StickySection 和 ListItem 作为直接子组件\n const sections = React.useMemo(() => {\n const result: Array<{\n header: React.ReactElement | null\n items: React.ReactElement[]\n key: string\n }> = []\n const defaultItems: React.ReactElement[] = []\n React.Children.forEach(children, (child, idx) => {\n if (React.isValidElement(child) && child.type === StickySection) {\n // 分组模式\n const sectionProps = child.props as any\n let header: React.ReactElement | null = null\n const items: React.ReactElement[] = []\n React.Children.forEach(sectionProps.children, (subChild) => {\n if (React.isValidElement(subChild) && subChild.type === StickyHeader) header = subChild\n else if (React.isValidElement(subChild) && subChild.type === ListItem) items.push(subChild)\n })\n result.push({ header, items, key: child.key || String(idx) })\n } else if (React.isValidElement(child) && child.type === ListItem) {\n // 普通 ListItem\n defaultItems.push(child)\n }\n })\n if (defaultItems.length > 0) {\n result.push({ header: null, items: defaultItems, key: 'default' })\n }\n return result\n }, [children])\n\n // 工具:获取 header 尺寸,确保所有 header 相关逻辑一致\n const getHeaderSize = () => {\n if (isHorizontal) {\n if (typeof props.headerWidth === 'number') return props.headerWidth\n if (typeof props.itemWidth === 'number') return props.itemWidth\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(0, props.itemData) || DEFAULT_ITEM_WIDTH\n return DEFAULT_ITEM_WIDTH\n } else {\n if (typeof props.headerHeight === 'number') return props.headerHeight\n if (typeof props.itemHeight === 'number') return props.itemHeight\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(0, props.itemData) || DEFAULT_ITEM_HEIGHT\n return DEFAULT_ITEM_HEIGHT\n }\n }\n\n // 工具:获取 item 尺寸,支持函数/props/默认值\n const getItemSize = (index: number) => {\n if (isHorizontal) {\n if (typeof props.itemWidth === 'number') return props.itemWidth\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(index, props.itemData) || DEFAULT_ITEM_WIDTH\n return DEFAULT_ITEM_WIDTH\n } else {\n if (typeof props.itemHeight === 'number') return props.itemHeight\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(index, props.itemData) || DEFAULT_ITEM_HEIGHT\n return DEFAULT_ITEM_HEIGHT\n }\n }\n\n // 计算分组累积高度/宽度\n const sectionOffsets = React.useMemo(() => {\n const offsets: number[] = [0]\n sections.forEach((section) => {\n const headerSize = getHeaderSize()\n const itemSizes = section.items.map((_, i) => getItemSize(i))\n const groupSize = (section.header ? headerSize : 0) +\n itemSizes.reduce((a, b) => a + b, 0) +\n Math.max(0, section.items.length) * space\n offsets.push(offsets[offsets.length - 1] + groupSize)\n })\n return offsets\n }, [sections, space, isHorizontal, props.headerHeight, props.headerWidth, props.itemHeight, props.itemWidth, props.itemSize, props.itemData])\n\n // 外层虚拟滚动:可见分组\n const [startSection, endSection] = React.useMemo(() => {\n let start = 0; let end = sections.length - 1\n for (let i = 0; i < sections.length; i++) {\n if (sectionOffsets[i + 1] > renderOffset) {\n start = Math.max(0, i - cacheCount)\n break\n }\n }\n for (let i = start; i < sections.length; i++) {\n if (sectionOffsets[i] >= renderOffset + containerLength) {\n end = Math.min(sections.length - 1, i + cacheCount)\n break\n }\n }\n return [start, end]\n }, [renderOffset, containerLength, sectionOffsets, sections.length, cacheCount])\n\n // 触顶/触底事件\n React.useEffect(() => {\n if (onScrollToUpper && renderOffset <= (upperThresholdCount > 0 ? sectionOffsets[upperThresholdCount] : 0)) {\n onScrollToUpper()\n }\n if (onScrollToLower && renderOffset + containerLength >= sectionOffsets[sectionOffsets.length - 1] - (lowerThresholdCount > 0 ? sectionOffsets[sectionOffsets.length - 1] - sectionOffsets[sections.length - lowerThresholdCount] : 0)) {\n onScrollToLower()\n }\n }, [renderOffset, containerLength, sectionOffsets, sections.length, upperThresholdCount, lowerThresholdCount, onScrollToUpper, onScrollToLower])\n\n // 处理渲染偏移量更新\n const updateRenderOffset = React.useCallback((newOffset: number) => {\n lastScrollTopRef.current = newOffset\n isScrollingRef.current = true\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current)\n }\n\n setRenderOffset(newOffset) // 立即更新渲染偏移量\n\n // 平台适配:微信小程序使用延时,其他平台立即更新\n const isWeapp = process.env.TARO_ENV === 'weapp'\n if (isWeapp) {\n // 微信小程序:使用延时避免抖动\n scrollTimeoutRef.current = setTimeout(() => {\n isScrollingRef.current = false\n setScrollViewOffset(newOffset) // 滚动结束后,同步滚动视图偏移量\n }, 200)\n } else {\n // 其他平台:立即更新以获得更好的响应性\n setScrollViewOffset(newOffset) // 立即更新滚动视图偏移量\n scrollTimeoutRef.current = setTimeout(() => {\n isScrollingRef.current = false\n }, 200)\n }\n }, [])\n\n\n\n // 智能滚动处理函数\n const handleScroll = React.useCallback((e: any) => {\n // 兼容Stencil版本和React版本的事件结构\n let newOffset: number\n if (e.detail) {\n // React版本的事件结构\n newOffset = isHorizontal ? e.detail.scrollLeft : e.detail.scrollTop\n } else {\n // Stencil版本的事件结构\n newOffset = isHorizontal ? e.scrollLeft : e.scrollTop\n }\n\n const diff = newOffset - lastScrollTopRef.current\n scrollDiffListRef.current.shift()\n scrollDiffListRef.current.push(diff)\n\n // 只保留抖动检测,移除方向检测\n if (isScrollingRef.current && isShaking(scrollDiffListRef.current)) {\n return\n }\n\n updateRenderOffset(newOffset) // 直接更新渲染偏移量\n\n onScroll?.({\n scrollTop: isHorizontal ? 0 : newOffset,\n scrollLeft: isHorizontal ? newOffset : 0\n })\n }, [isHorizontal, onScroll, updateRenderOffset, containerLength])\n\n // 初始化后的延迟同步 - 确保ScrollView正确设置初始位置\n React.useEffect(() => {\n if (typeof controlledScrollTop === 'number') {\n setScrollViewOffset(controlledScrollTop)\n lastScrollTopRef.current = controlledScrollTop\n }\n }, [controlledScrollTop])\n\n // 清理定时器\n React.useEffect(() => {\n return () => {\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current)\n }\n }\n }, [])\n\n // 容器样式\n const containerStyle: React.CSSProperties = {\n position: 'relative',\n boxSizing: 'border-box',\n height: isHorizontal ? width : height,\n width: isHorizontal ? height : width,\n ...style,\n }\n\n // 修改ScrollView组件的props,添加data-testid属性\n // ScrollView 属性\n const scrollViewProps: any = {\n scrollY: !isHorizontal,\n scrollX: isHorizontal,\n style: containerStyle,\n enhanced: true,\n showScrollbar: showScrollbar,\n onScroll: handleScroll,\n onScrollToUpper,\n onScrollToLower,\n 'data-testid': 'taro-list-container'\n }\n\n // 设置ScrollView的滚动位置 - 同时兼容React版本和Stencil版本\n if (isHorizontal) {\n scrollViewProps.scrollLeft = scrollViewOffset // React版本\n scrollViewProps.mpScrollLeft = scrollViewOffset // Stencil版本\n } else {\n scrollViewProps.scrollTop = scrollViewOffset // React版本\n scrollViewProps.mpScrollTop = scrollViewOffset // Stencil版本\n }\n\n // H5上额外使用DOM直接操作确保滚动位置正确\n if (isH5) {\n React.useEffect(() => {\n if (containerRef.current && typeof scrollViewOffset === 'number') {\n if (isHorizontal) {\n containerRef.current.scrollLeft = scrollViewOffset\n } else {\n containerRef.current.scrollTop = scrollViewOffset\n }\n }\n }, [scrollViewOffset, isHorizontal])\n }\n\n // 总高度/宽度\n const totalLength = sectionOffsets[sectionOffsets.length - 1]\n\n // 吸顶/吸左 header\n const stickyHeaderNode = React.useMemo(() => {\n if (!stickyHeader) return null\n for (let i = 0; i < sections.length; i++) {\n if (sectionOffsets[i] <= renderOffset && renderOffset < sectionOffsets[i + 1]) {\n const section = sections[i]\n if (section.header) {\n const headerSize = getHeaderSize()\n // 内联样式替代className\n const stickyHeaderStyle: React.CSSProperties = {\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 100,\n background: '#fff',\n boxSizing: 'border-box',\n minHeight: '20px',\n overflow: 'hidden',\n lineHeight: 1,\n ...(isHorizontal ? { width: headerSize } : { height: headerSize })\n }\n return (\n <View style={stickyHeaderStyle}>\n {section.header}\n </View>\n )\n }\n }\n }\n return null\n }, [stickyHeader, renderOffset, sectionOffsets, sections, isHorizontal, props.headerHeight, props.headerWidth, props.itemHeight, props.itemWidth, props.itemSize, props.itemData])\n\n // 渲染分组+item双层虚拟滚动\n const renderSections = () => {\n const nodes: React.ReactNode[] = []\n let offset = sectionOffsets[startSection]\n for (let s = startSection; s <= endSection; s++) {\n const section = sections[s]\n const headerSize = getHeaderSize()\n const itemSizes = section.items.map((_, i) => getItemSize(i))\n // header\n if (section.header) {\n // 内联样式替代className\n const sectionHeaderStyle: React.CSSProperties = {\n position: 'absolute',\n zIndex: 2,\n boxSizing: 'border-box',\n width: '100%',\n minHeight: '20px',\n overflow: 'hidden',\n lineHeight: 1,\n ...(isHorizontal\n ? { top: 0, height: '100%', left: offset, width: headerSize }\n : { top: offset, height: headerSize })\n }\n nodes.push(\n React.createElement(View, {\n key: section.key + '-header' + '-' + layout,\n style: sectionHeaderStyle,\n }, section.header)\n )\n offset += headerSize\n }\n // item offsets\n const itemOffsets = accumulate(itemSizes.map((size) => size + space))\n // 内层虚拟滚动:可见item区间\n let startItem = 0; let endItem = section.items.length - 1\n for (let i = 0; i < section.items.length; i++) {\n if (offset + itemOffsets[i + 1] > renderOffset) {\n startItem = Math.max(0, i - cacheCount)\n break\n }\n }\n for (let i = startItem; i < section.items.length; i++) {\n if (offset + itemOffsets[i] >= renderOffset + containerLength) {\n endItem = Math.min(section.items.length - 1, i + cacheCount)\n break\n }\n }\n // 渲染可见item\n for (let i = startItem; i <= endItem; i++) {\n // 内联样式替代className\n const sectionItemStyle: React.CSSProperties = {\n position: 'absolute',\n zIndex: 1,\n boxSizing: 'border-box',\n width: '100%',\n minHeight: '20px',\n overflow: 'hidden',\n lineHeight: 1,\n ...(isHorizontal\n ? {\n top: 0,\n height: '100%',\n left: offset + itemOffsets[i],\n width: itemSizes[i],\n marginRight: space\n }\n : {\n top: offset + itemOffsets[i],\n height: itemSizes[i],\n marginBottom: space\n })\n }\n nodes.push(\n React.createElement(View, {\n key: section.key + '-item-' + i + '-' + layout,\n style: sectionItemStyle,\n }, section.items[i])\n )\n }\n offset += itemOffsets[itemOffsets.length - 1]\n }\n return nodes\n }\n\n return (\n <ScrollView ref={containerRef} {...scrollViewProps}>\n <View style={isHorizontal ? { width: totalLength, position: 'relative', height: '100%' } : { height: totalLength, position: 'relative', width: '100%' }}>\n {stickyHeaderNode}\n {renderSections()}\n </View>\n </ScrollView>\n )\n}\n\nexport { List, ListItem, StickyHeader, StickySection }\nexport default List\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/list/index.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport React from 'react'\n\nimport ListItem from './ListItem'\nimport StickyHeader from './StickyHeader'\nimport StickySection from './StickySection'\n\nexport interface ListProps {\n showScrollbar?: boolean\n scrollTop?: number\n scrollX?: boolean\n scrollY?: boolean\n onScroll?: (e: { scrollTop: number, scrollLeft: number }) => void\n onScrollToUpper?: () => void\n onScrollToLower?: () => void\n upperThreshold?: number\n lowerThreshold?: number\n cacheCount?: number\n stickyHeader?: boolean\n space?: number\n itemData?: any[]\n itemSize?: number | ((index: number, data?: any[]) => number)\n height?: number | string\n width?: number | string\n style?: React.CSSProperties\n children?: React.ReactNode\n headerHeight?: number // 纵向 header 高度\n headerWidth?: number // 横向 header 宽度\n itemHeight?: number // 纵向 item 高度\n itemWidth?: number // 横向 item 宽度\n}\n\n// 工具:累加数组\nexport function accumulate(arr: number[]) {\n const result = [0]\n for (let i = 0; i < arr.length; i++) {\n result[i + 1] = result[i] + arr[i]\n }\n return result\n}\n\n// 检测抖动\nexport function isShaking(diffList: number[]): boolean {\n if (diffList.length < 3) return false\n\n // 检查是否有连续的正负交替\n const signs = diffList.map(diff => Math.sign(diff))\n let alternations = 0\n for (let i = 1; i < signs.length; i++) {\n if (signs[i] !== 0 && signs[i] !== signs[i - 1]) {\n alternations++\n }\n }\n\n // 如果交替次数过多,认为是抖动\n return alternations >= 2\n}\n\nconst List: React.FC<ListProps> = (props) => {\n const isH5 = process.env.TARO_ENV === 'h5'\n const {\n stickyHeader = false,\n space = 0,\n height = 400,\n width = '100%',\n showScrollbar = true,\n scrollTop: controlledScrollTop,\n scrollX = false,\n scrollY = true,\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n upperThreshold = 0,\n lowerThreshold = 0,\n cacheCount = 2,\n style,\n children,\n } = props\n\n const isHorizontal = scrollX === true\n const DEFAULT_ITEM_WIDTH = 120\n const DEFAULT_ITEM_HEIGHT = 40\n\n // 滚动状态管理\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n // 渲染偏移量 - 用于计算应该渲染哪些元素\n const [renderOffset, setRenderOffset] = React.useState(controlledScrollTop ?? 0)\n\n // 滚动视图偏移量 - 只在滚动结束或明确请求时更新到ScrollView\n const [scrollViewOffset, setScrollViewOffset] = React.useState(controlledScrollTop ?? 0)\n\n\n const [containerLength] = React.useState<number>(typeof (isHorizontal ? width : height) === 'number' ? (isHorizontal ? (width as number) : (height as number)) : 400)\n\n // 滚动追踪相关refs\n const isScrollingRef = React.useRef(false)\n const lastScrollTopRef = React.useRef(controlledScrollTop ?? 0)\n const scrollDiffListRef = React.useRef<number[]>([0, 0, 0])\n const scrollTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n // 解析分组结构,只支持 StickySection 和 ListItem 作为直接子组件\n const sections = React.useMemo(() => {\n const result: Array<{\n header: React.ReactElement | null\n items: React.ReactElement[]\n key: string\n }> = []\n const defaultItems: React.ReactElement[] = []\n React.Children.forEach(children, (child, idx) => {\n if (React.isValidElement(child) && child.type === StickySection) {\n // 分组模式\n const sectionProps = child.props as any\n let header: React.ReactElement | null = null\n const items: React.ReactElement[] = []\n React.Children.forEach(sectionProps.children, (subChild) => {\n if (React.isValidElement(subChild) && subChild.type === StickyHeader) header = subChild\n else if (React.isValidElement(subChild) && subChild.type === ListItem) items.push(subChild)\n })\n result.push({ header, items, key: child.key || String(idx) })\n } else if (React.isValidElement(child) && child.type === ListItem) {\n // 普通 ListItem\n defaultItems.push(child)\n }\n })\n if (defaultItems.length > 0) {\n result.push({ header: null, items: defaultItems, key: 'default' })\n }\n return result\n }, [children])\n\n // 工具:获取 header 尺寸,确保所有 header 相关逻辑一致\n const getHeaderSize = () => {\n if (isHorizontal) {\n if (typeof props.headerWidth === 'number') return props.headerWidth\n if (typeof props.itemWidth === 'number') return props.itemWidth\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(0, props.itemData) || DEFAULT_ITEM_WIDTH\n return DEFAULT_ITEM_WIDTH\n } else {\n if (typeof props.headerHeight === 'number') return props.headerHeight\n if (typeof props.itemHeight === 'number') return props.itemHeight\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(0, props.itemData) || DEFAULT_ITEM_HEIGHT\n return DEFAULT_ITEM_HEIGHT\n }\n }\n\n // 工具:获取 item 尺寸,支持函数/props/默认值\n const getItemSize = (index: number) => {\n if (isHorizontal) {\n if (typeof props.itemWidth === 'number') return props.itemWidth\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(index, props.itemData) || DEFAULT_ITEM_WIDTH\n return DEFAULT_ITEM_WIDTH\n } else {\n if (typeof props.itemHeight === 'number') return props.itemHeight\n if (typeof props.itemSize === 'number') return props.itemSize\n if (typeof props.itemSize === 'function') return props.itemSize(index, props.itemData) || DEFAULT_ITEM_HEIGHT\n return DEFAULT_ITEM_HEIGHT\n }\n }\n\n // 计算分组累积高度/宽度\n const sectionOffsets = React.useMemo(() => {\n const offsets: number[] = [0]\n sections.forEach((section) => {\n const headerSize = getHeaderSize()\n const itemSizes = section.items.map((_, i) => getItemSize(i))\n const groupSize = (section.header ? headerSize : 0) +\n itemSizes.reduce((a, b) => a + b, 0) +\n Math.max(0, section.items.length) * space\n offsets.push(offsets[offsets.length - 1] + groupSize)\n })\n return offsets\n }, [sections, space, isHorizontal, props.headerHeight, props.headerWidth, props.itemHeight, props.itemWidth, props.itemSize, props.itemData])\n\n // 外层虚拟滚动:可见分组\n const [startSection, endSection] = React.useMemo(() => {\n let start = 0; let end = sections.length - 1\n for (let i = 0; i < sections.length; i++) {\n if (sectionOffsets[i + 1] > renderOffset) {\n start = Math.max(0, i - cacheCount)\n break\n }\n }\n for (let i = start; i < sections.length; i++) {\n if (sectionOffsets[i] >= renderOffset + containerLength) {\n end = Math.min(sections.length - 1, i + cacheCount)\n break\n }\n }\n return [start, end]\n }, [renderOffset, containerLength, sectionOffsets, sections.length, cacheCount])\n\n // 触顶/触底事件\n React.useEffect(() => {\n if (onScrollToUpper && renderOffset <= (upperThreshold > 0 ? sectionOffsets[upperThreshold] : 0)) {\n onScrollToUpper()\n }\n if (onScrollToLower && renderOffset + containerLength >= sectionOffsets[sectionOffsets.length - 1] - (lowerThreshold > 0 ? sectionOffsets[sectionOffsets.length - 1] - sectionOffsets[sections.length - lowerThreshold] : 0)) {\n onScrollToLower()\n }\n }, [renderOffset, containerLength, sectionOffsets, sections.length, upperThreshold, lowerThreshold, onScrollToUpper, onScrollToLower])\n\n // 处理渲染偏移量更新\n const updateRenderOffset = React.useCallback((newOffset: number) => {\n lastScrollTopRef.current = newOffset\n isScrollingRef.current = true\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current)\n }\n\n setRenderOffset(newOffset) // 立即更新渲染偏移量\n\n // 平台适配:微信小程序使用延时,其他平台立即更新\n const isWeapp = process.env.TARO_ENV === 'weapp'\n if (isWeapp) {\n // 微信小程序:使用延时避免抖动\n scrollTimeoutRef.current = setTimeout(() => {\n isScrollingRef.current = false\n setScrollViewOffset(newOffset) // 滚动结束后,同步滚动视图偏移量\n }, 200)\n } else {\n // 其他平台:立即更新以获得更好的响应性\n setScrollViewOffset(newOffset) // 立即更新滚动视图偏移量\n scrollTimeoutRef.current = setTimeout(() => {\n isScrollingRef.current = false\n }, 200)\n }\n }, [])\n\n\n\n // 智能滚动处理函数\n const handleScroll = React.useCallback((e: any) => {\n // 兼容Stencil版本和React版本的事件结构\n let newOffset: number\n if (e.detail) {\n // React版本的事件结构\n newOffset = isHorizontal ? e.detail.scrollLeft : e.detail.scrollTop\n } else {\n // Stencil版本的事件结构\n newOffset = isHorizontal ? e.scrollLeft : e.scrollTop\n }\n\n const diff = newOffset - lastScrollTopRef.current\n scrollDiffListRef.current.shift()\n scrollDiffListRef.current.push(diff)\n\n // 只保留抖动检测,移除方向检测\n if (isScrollingRef.current && isShaking(scrollDiffListRef.current)) {\n return\n }\n\n updateRenderOffset(newOffset) // 直接更新渲染偏移量\n\n onScroll?.({\n scrollTop: isHorizontal ? 0 : newOffset,\n scrollLeft: isHorizontal ? newOffset : 0\n })\n }, [isHorizontal, onScroll, updateRenderOffset, containerLength])\n\n // 初始化后的延迟同步 - 确保ScrollView正确设置初始位置\n React.useEffect(() => {\n if (typeof controlledScrollTop === 'number') {\n setScrollViewOffset(controlledScrollTop)\n lastScrollTopRef.current = controlledScrollTop\n }\n }, [controlledScrollTop])\n\n // 清理定时器\n React.useEffect(() => {\n return () => {\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current)\n }\n }\n }, [])\n\n // 容器样式\n const containerStyle: React.CSSProperties = {\n position: 'relative',\n boxSizing: 'border-box',\n height: isHorizontal ? width : height,\n width: isHorizontal ? height : width,\n ...style,\n }\n\n // 修改ScrollView组件的props,添加data-testid属性\n // ScrollView 属性\n const scrollViewProps: any = {\n scrollY: !scrollX && scrollY,\n scrollX: scrollX,\n style: containerStyle,\n enhanced: true,\n showScrollbar: showScrollbar,\n onScroll: handleScroll,\n onScrollToUpper,\n onScrollToLower,\n 'data-testid': 'taro-list-container'\n }\n\n // 设置ScrollView的滚动位置 - 同时兼容React版本和Stencil版本\n if (isHorizontal) {\n scrollViewProps.scrollLeft = scrollViewOffset // React版本\n scrollViewProps.mpScrollLeft = scrollViewOffset // Stencil版本\n } else {\n scrollViewProps.scrollTop = scrollViewOffset // React版本\n scrollViewProps.mpScrollTop = scrollViewOffset // Stencil版本\n }\n\n // H5上额外使用DOM直接操作确保滚动位置正确\n if (isH5) {\n React.useEffect(() => {\n if (containerRef.current && typeof scrollViewOffset === 'number') {\n if (isHorizontal) {\n containerRef.current.scrollLeft = scrollViewOffset\n } else {\n containerRef.current.scrollTop = scrollViewOffset\n }\n }\n }, [scrollViewOffset, isHorizontal])\n }\n\n // 总高度/宽度\n const totalLength = sectionOffsets[sectionOffsets.length - 1]\n\n // 吸顶/吸左 header\n const stickyHeaderNode = React.useMemo(() => {\n if (!stickyHeader) return null\n for (let i = 0; i < sections.length; i++) {\n if (sectionOffsets[i] <= renderOffset && renderOffset < sectionOffsets[i + 1]) {\n const section = sections[i]\n if (section.header) {\n const headerSize = getHeaderSize()\n // 内联样式替代className\n const stickyHeaderStyle: React.CSSProperties = {\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 100,\n background: '#fff',\n boxSizing: 'border-box',\n minHeight: '20px',\n overflow: 'hidden',\n lineHeight: 1,\n ...(isHorizontal ? { width: headerSize } : { height: headerSize })\n }\n return (\n <View style={stickyHeaderStyle}>\n {section.header}\n </View>\n )\n }\n }\n }\n return null\n }, [stickyHeader, renderOffset, sectionOffsets, sections, isHorizontal, props.headerHeight, props.headerWidth, props.itemHeight, props.itemWidth, props.itemSize, props.itemData])\n\n // 渲染分组+item双层虚拟滚动\n const renderSections = () => {\n const nodes: React.ReactNode[] = []\n let offset = sectionOffsets[startSection]\n for (let s = startSection; s <= endSection; s++) {\n const section = sections[s]\n const headerSize = getHeaderSize()\n const itemSizes = section.items.map((_, i) => getItemSize(i))\n // header\n if (section.header) {\n // 内联样式替代className\n const sectionHeaderStyle: React.CSSProperties = {\n position: 'absolute',\n zIndex: 2,\n boxSizing: 'border-box',\n width: '100%',\n minHeight: '20px',\n overflow: 'hidden',\n lineHeight: 1,\n ...(isHorizontal\n ? { top: 0, height: '100%', left: offset, width: headerSize }\n : { top: offset, height: headerSize })\n }\n nodes.push(\n React.createElement(View, {\n key: section.key + '-header',\n style: sectionHeaderStyle,\n }, section.header)\n )\n offset += headerSize\n }\n // item offsets\n const itemOffsets = accumulate(itemSizes.map((size) => size + space))\n // 内层虚拟滚动:可见item区间\n let startItem = 0; let endItem = section.items.length - 1\n for (let i = 0; i < section.items.length; i++) {\n if (offset + itemOffsets[i + 1] > renderOffset) {\n startItem = Math.max(0, i - cacheCount)\n break\n }\n }\n for (let i = startItem; i < section.items.length; i++) {\n if (offset + itemOffsets[i] >= renderOffset + containerLength) {\n endItem = Math.min(section.items.length - 1, i + cacheCount)\n break\n }\n }\n // 渲染可见item\n for (let i = startItem; i <= endItem; i++) {\n // 内联样式替代className\n const sectionItemStyle: React.CSSProperties = {\n position: 'absolute',\n zIndex: 1,\n boxSizing: 'border-box',\n width: '100%',\n minHeight: '20px',\n overflow: 'hidden',\n lineHeight: 1,\n ...(isHorizontal\n ? {\n top: 0,\n height: '100%',\n left: offset + itemOffsets[i],\n width: itemSizes[i],\n marginRight: space\n }\n : {\n top: offset + itemOffsets[i],\n height: itemSizes[i],\n marginBottom: space\n })\n }\n nodes.push(\n React.createElement(View, {\n key: section.key + '-item-' + i,\n style: sectionItemStyle,\n }, section.items[i])\n )\n }\n offset += itemOffsets[itemOffsets.length - 1]\n }\n return nodes\n }\n\n return (\n <ScrollView ref={containerRef} {...scrollViewProps}>\n <View style={isHorizontal ? { width: totalLength, position: 'relative', height: '100%' } : { height: totalLength, position: 'relative', width: '100%' }}>\n {stickyHeaderNode}\n {renderSections()}\n </View>\n </ScrollView>\n )\n}\n\nexport { List, ListItem, StickyHeader, StickySection }\nexport default List\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/components-advanced",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.11-beta.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "O2Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"csstype": "^3.1.1",
|
|
21
21
|
"memoize-one": "^6.0.0",
|
|
22
22
|
"tslib": "^2.6.2",
|
|
23
|
-
"@tarojs/components": "4.1.
|
|
23
|
+
"@tarojs/components": "4.1.11-beta.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"vue": "3.2.47",
|
|
27
|
-
"@tarojs/runtime": "4.1.
|
|
28
|
-
"@tarojs/taro": "4.1.
|
|
29
|
-
"@tarojs/shared": "4.1.
|
|
27
|
+
"@tarojs/runtime": "4.1.11-beta.1",
|
|
28
|
+
"@tarojs/taro": "4.1.11-beta.1",
|
|
29
|
+
"@tarojs/shared": "4.1.11-beta.1"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": ">=18",
|
|
33
|
-
"@tarojs/runtime": "~4.1.
|
|
34
|
-
"@tarojs/shared": "~4.1.
|
|
35
|
-
"@tarojs/taro": "~4.1.
|
|
33
|
+
"@tarojs/runtime": "~4.1.11-beta.1",
|
|
34
|
+
"@tarojs/shared": "~4.1.11-beta.1",
|
|
35
|
+
"@tarojs/taro": "~4.1.11-beta.1"
|
|
36
36
|
},
|
|
37
37
|
"peerDependenciesMeta": {
|
|
38
38
|
"react": {
|