@pluve/ace
Version:
一套React版本的 Taro UI 组件库
24 lines • 1.41 kB
JavaScript
/**
* 高性能列表组件 author:cxl
*/
import React from 'react';
import { View, Text } from '@tarojs/components';
import VirtualList from '@tarojs/components/virtual-list';
const DefaultNoneData = () => (React.createElement(View, { className: "ace-flat-list-noneWrap" },
React.createElement(Text, null, "\u5F53\u524D\u65E0\u6570\u636E")));
const DefaultRenderItem = () => { };
const FlatList = ({ itemData = [], keyExtractor = () => '', renderSeparator = React.createElement(View, null), renderItem = DefaultRenderItem, renderNoneData = React.createElement(DefaultNoneData, null), contentH = 0, itemH = 0, }) => {
const dataLen = itemData.length;
const Row = React.memo(({ index, data }) => {
const item = data[index];
return React.createElement(View, { key: keyExtractor(item) }, renderItem(item));
});
if (contentH > 0 && itemH > 0 && dataLen > 0) {
return (React.createElement(VirtualList, { height: contentH, width: "100%", itemData: itemData, itemCount: dataLen, itemSize: itemH }, Row));
}
return (React.createElement(View, { className: "ace-flat-list-wrap" }, dataLen === 0 ? (renderNoneData) : (React.createElement(View, null, itemData.map((item) => (React.createElement(View, { key: keyExtractor(item) },
renderItem(item),
renderSeparator)))))));
};
export default FlatList;
//# sourceMappingURL=index.js.map