Skip to content

Commit c483127

Browse files
committed
fix: FixedForwardRef and defaultProps
1 parent 1f304b6 commit c483127

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/App.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import BaseExample from "./examples/base";
22
import StickyExample from "./examples/sticky";
3+
34
function App() {
45
return (
56
<>

src/VirtualList.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import React, {
22
useState,
33
useMemo,
4-
useEffect, useRef, ReactNode, useLayoutEffect, useImperativeHandle, forwardRef as forwardRef0,
4+
useEffect, useRef, ReactNode, useLayoutEffect, useImperativeHandle,
55
} from 'react';
66

77
type OptionalKeys<T> = {
88
[K in keyof T]?: T[K];
99
};
1010
// fix forwardRef type for generic types. refer: https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref
11-
type FixedForwardRef = < T, P = {} > (
11+
export type FixedForwardRef = < T, P = {} > (
1212
render: (props: P, ref: React.Ref<T>) => React.ReactElement | null,
1313
) => (props: P & React.RefAttributes<T>) => React.ReactElement | null;
14-
const forwardRef = forwardRef0 as FixedForwardRef
14+
const forwardRef = React.forwardRef as FixedForwardRef
1515

1616
export type Props<ITEM> = {
1717
itemSize?: number,
@@ -31,7 +31,7 @@ export interface VirtualListHandle {
3131
scrollToIndex(index: number): void
3232
}
3333

34-
const VirtualList0 = function <ITEM>(
34+
export const VirtualList = forwardRef(function <ITEM>(
3535
props: Props<ITEM>,
3636
ref: React.ForwardedRef<VirtualListHandle>
3737
) {
@@ -113,8 +113,7 @@ const VirtualList0 = function <ITEM>(
113113
{visible.map((item, i) => props.renderItem(item, visibleIndexes[i]))}
114114
</div>
115115
</div>
116-
}
117-
118-
VirtualList0.defaultProps = defaultProps
116+
})
119117

120-
export const VirtualList = forwardRef(VirtualList0)
118+
// @ts-ignore
119+
VirtualList.defaultProps = defaultProps

0 commit comments

Comments
 (0)