- {items.map((item, index) => {
- const key = getItemKey ? getItemKey(item, index) : index;
- return (
-
- {renderItem(item, index)}
-
- );
- })}
- {footer && (
-
- {footer}
-
- )}
-
+
+ {virtualItems.map((virtualItem) => {
+ const isFooter = hasFooter && virtualItem.index === items.length;
+ const item = isFooter ? null : items[virtualItem.index];
+ const itemKey = isFooter
+ ? FOOTER_KEY
+ : getItemKey
+ ? getItemKey(item as T, virtualItem.index)
+ : virtualItem.index;
+ return (
+
+
+ {isFooter ? footer : renderItem(item as T, virtualItem.index)}
+
+
+ );
+ })}
+ {orphanKeepIndices.map((index) => {
+ const item = items[index];
+ const k = getItemKey ? getItemKey(item, index) : index;
+ return (
+
+
+ {renderItem(item, index)}
+
+
+ );
+ })}
+
+