mirror of
https://github.com/smartxworks/sunmao-ui.git
synced 2025-02-17 17:40:31 +08:00
add listItem memo
This commit is contained in:
parent
9cec11d180
commit
d878fbc5f2
@ -38,10 +38,16 @@ const List: ComponentImplementation<{
|
||||
if (!listData) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const itemElementMemo = useRef(new Map());
|
||||
const parsedtemplete = template.map(parseTypeComponents);
|
||||
|
||||
const listItems = listData.map((listItem, i) => {
|
||||
if (itemElementMemo.current.has(listItem.id)) {
|
||||
if (itemElementMemo.current.get(listItem.id).value === listItem) {
|
||||
return itemElementMemo.current.get(listItem.id).ele;
|
||||
}
|
||||
}
|
||||
|
||||
const evaledTemplate = mapValuesDeep(
|
||||
{ parsedtemplete },
|
||||
({ value, key }) => {
|
||||
@ -69,11 +75,17 @@ const List: ComponentImplementation<{
|
||||
);
|
||||
});
|
||||
|
||||
return (
|
||||
const listItemEle = (
|
||||
<BaseListItem key={listItem.id} spacing={3}>
|
||||
{componentElements}
|
||||
</BaseListItem>
|
||||
);
|
||||
|
||||
itemElementMemo.current.set(listItem.id, {
|
||||
value: listItem,
|
||||
ele: listItemEle,
|
||||
});
|
||||
return listItemEle;
|
||||
});
|
||||
|
||||
return <BaseList>{listItems}</BaseList>;
|
||||
|
Loading…
Reference in New Issue
Block a user